9.5.2 foreach循环
虽然Iterator能够对Collection和Map进行遍历,但是从上一小节的实例中可以看出,如果要遍历Collection或者是Map,都需要先获得迭代器,然后再通过while循环来读取数据,这种方式在写法上较为繁琐。为了简化书写,从JDK 1.5开始提供了foreach循环,也称之为增强for循环。foreach循环同样能够实现对数组或集合的遍历,且在书写上更加简洁。
foreach循环的语法格式如下:

如果采用foreach来遍历集合,那么例9.11的输出就可以修改为:
(https://www.daowen.com)
因为要遍历的集合coll中保存的是String类型的数据,因此在foreach循环中定义一个String类型的临时变量s,然后在循环体中直接输出临时变量s。同理,例9.12的输出可以修改为:

从上面两个示例可以看出,foreach循环在遍历集合时的写法非常简洁,其的循环次数由集合中的个数来决定而不需要循环变量(集合的索引),也不需要循环条件,直接给定一个临时变量来保存当前循环遍历读取的元素即可。
不过,foreach循环无法控制遍历的过程(如for循环可以控制步长),也无法在遍历过程中对元素进行修改,因为集合中的元素会拷贝一份至临时变量中,修改临时变量不会影响集合中的元素值。