以上几篇参考帖子中讲的最简潔明了。摘录如下:
【yasi】这里我们只要知道下面的事实就好了:
下面对“For-each”和“其对等的iteration/index实现”的对比再簡洁明了不过了
【yasi】一定要注意For-each不是万能的,下面的场合是不适宜使用For-each的
同时只能遍历一个collection或数组不能同时遍历多余一个collection或数组 遍历過程中,collection或数组中同时只有一个元素可见即只有“当前遍历到的元素”可见,而前一个或后一个元素是不可见的下边是翻译后的源码(本人英语渣如有错误,请指正):
* 对每个{@code Iterable}元素执行特定的操作直到所有的元素被处理或者抛出一个异常 * 除非实现类另有定义,否则操作将被按照顺序迭代器的顺序执行(如果迭代器被指定) * 操作抛出的异常将传递给其调用者。下边是以上代码的一种输出结果
4.躲避长度判断执行增加和删除嘚方法。
在下一次进入循环之前就退出循环这样就能既能实现增加和删除操作,又不会报错