一、foreach概述
foreach也叫加强型循环,是Java5.0版本之后新增的for循环语法,顾名思义,就是加强版的for循环,可以极大地简化遍历数组或集合元素的代码。
foreach语法格式如下:
for (数据类型 变量名:遍历对象) { //循环体 }
其中,数据类型指定遍历对象中元素的数据类型,变量名则代表了每次遍历的当前元素。
二、foreach遍历数组
下面是一个foreach遍历数组的示例代码:
String[] names = {"Tom", "Jerry", "Mickey"}; for (String name : names) { System.out.println(name); }
解释一下上述代码的执行过程:首先定义了一个字符串数组,包含了三个元素,然后使用foreach遍历这个数组,遍历过程中定义了一个字符串变量name,用于保存每个数组元素的值。代码执行时,进入foreach循环体,先将第一个数组元素"Tom"赋值给name变量,然后输出name的值,输出结果是Tom;接着将第二个数组元素"Jerry"赋值给name变量,输出结果是Jerry;最后将第三个数组元素"Mickey"赋值给name变量,输出结果是Mickey。
三、foreach遍历集合
下面是一个foreach遍历集合的示例代码:
Listfruits = new ArrayList<>(); fruits.add("Apple"); fruits.add("Banana"); fruits.add("Orange"); for (String fruit : fruits) { System.out.println(fruit); }
解释一下上述代码的执行过程:首先定义了一个List集合,包含了三个元素,然后使用foreach遍历这个集合,遍历过程中定义了一个字符串变量fruit,用于保存每个集合元素的值。代码执行时,进入foreach循环体,先将第一个集合元素"Apple"赋值给fruit变量,然后输出fruit的值,输出结果是Apple;接着将第二个集合元素"Banana"赋值给fruit变量,输出结果是Banana;最后将第三个集合元素"Orange"赋值给fruit变量,输出结果是Orange。
四、foreach遍历Map
下面是一个foreach遍历Map的示例代码:
Mapscores = new HashMap<>(); scores.put("Tom", 80); scores.put("Jerry", 90); scores.put("Mickey", 85); for (Map.Entry entry : scores.entrySet()) { String name = entry.getKey(); Integer score = entry.getValue(); System.out.println("Name: " + name + ", Score: " + score); }
解释一下上述代码的执行过程:首先定义了一个Map,包含了三对键值对,然后使用foreach遍历这个Map的entrySet()方法返回的Set集合,遍历过程中定义了一个Map.Entry
五、foreach注意事项
在使用foreach时,需要注意以下几点:
- foreach只适用于遍历数组、集合或Map等实现了Iterable接口的对象。
- 在foreach循环中不能修改集合或数组的元素,否则会抛出ConcurrentModificationException异常。
- 在遍历Map时,foreach循环中的变量类型为Map.Entry<K, V>。
- foreach遍历集合或数组时,只能访问其中的元素值,无法访问元素的下标或者键。