Collection接口的问题
还有0人有此问题
发表在Java视频课程答疑 2017-06-14
是否精华
版块置顶:

 

public static void main(String[] args) {
  Collection c = new ArrayList();
  System.out.println("集合是不是空" + c.isEmpty() + c.size());

  c.add("你好");
  c.add(3.14);
  c.add(new Object());
  
  Iterator it = c.iterator();
  while (it.hasNext()) {
   Object o = it.next();
   System.out.println(o);
  }

 }

上面代码,it这个对象引用的是c.iterator(),可是我不用it引用,直接在while语句里用,如while (c.iterator().hasNext()) {
   Object o = c.iterator().next();
   System.out.println(o);
  }

没有报错,但是这个是无限循环,一直在输出你好,然后我给c.iterator()价格括号一样,老师这是为啥呢

分享到:
精彩评论 2
David
学分:914 LV7
TA的每日心情
最后的冲刺
2017-07-15 10:46:08
2017-06-14
沙发

读者的写法虽然可以简化代码,但c.iterator()每次返回的都是一个新的Iterator对象,所以调用next()时,返回的都是“你好”。


17625087881
学分:42 LV2
2017-06-20
板凳

David 发表于2017-06-14 16:20

读者的写法虽然可以简化代码,但c.iterator()每次返回的都是一个新的Iterator对象,所以调用next()时,返回的都是“你好”。


c.iterator()

进入while循环是,每次都新申明的一个iterator()对象,并且都是你集合中的索引为0的对象,也就是“你好”;

haha 

首页上一页 1 下一页尾页 2 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照