普通for循环加迭代器有人能帮忙解释下吗,

古灬风 2019-02-14 03:01:31
for (Iterator ite = netList.iterator(); ite.hasNext();)普通for循环加迭代器,有人能帮忙解释下吗,刚接触,不太理解原理
...全文
351 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
stacksoverflow 2019-02-14
  • 打赏
  • 举报
回复
借用3楼的回答 for(①;②;③){} 等同于 ①; for(;②;){ ...... ③; } 又等同于 ①; while(②){ ...... ③; } 所以你的代码等同于 Iterator ite = netList.iterator(); for (; ite.hasNext();){ } 又等同于 Iterator ite = netList.iterator(); while(ite.hasNext()){ }
nayi_224 2019-02-14
  • 打赏
  • 举报
回复
①在for循环执行前调用,若定义变量,作用域在for循环体内; ②在每次循环的开始调用,为true则继续执行,否则跳出循环; ③在每次循环结束后调用。 初始化、判断、递增只是约定俗成的使用方法,从语法上讲,你可以写更多你想要的东西。 比如
	public static void main(String[] args) {
		for(new Object(); new HashSet().add(""); args.toString()){
			
		}
	}
  • 打赏
  • 举报
回复
for(①;②;③){}
表达式①:初始化相关数据
表达式②:boolean类型,为true则继续循环
表达式③:循环后的一些数据处理操作
qybao 2019-02-14
  • 打赏
  • 举报
回复
netList.iterator();返回netList的迭代器,通过迭代器的next方法来获取下一个元素,迭代器的hashNext方法可以判断还有没有下一个元素
所以
for (Iterator ite = netList.iterator(); ite.hasNext();)
把netList.iterator()迭代器赋值给一个ite变量,相当于for的第一个表达式的int i=0;
然后调用ite.hasnNext()方法判断是否还有下一个元素,相当于for的第二个表达式的 i<netList.size();
这里没有类似于i++的递增,因为在循环体里面一定会调用ite.next()方法来获取下一个元素,这样迭代器就会递增1了

古灬风 2019-02-14
  • 打赏
  • 举报
回复
最近刚遇到这段代码,我还处于for里放int的阶段,望大神赐教

50,504

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧