通过反编译源码,我们看到,其实JAVA中的增强for循环底层是通过迭代器模式来实现的。
增强for循环实现原理
编译前
for (Integer i : list) {
System.out.print(i + ",");
}
编译后
Integer i;
for(Iterator iterator = list.iterator(); iterator.hasNext(); System.out.println(i)){
i = (Integer)iterator.next();
源码解析Integer i; 定义一个临时变量i
Iterator iterator = list.iterator(); 获取List的迭代器
iterator.hasNext(); 判断迭代器中是否有未遍历过的元素
i = (Integer)iterator.next(); 获取第一个未遍历的元素,赋值给临时变量i
System.out.println(i) 输出临时变量i的值