您的位置:

Java中foreach用法详解

一、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遍历集合的示例代码:

List fruits = 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的示例代码:

Map scores = 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 类型的变量entry,用于保存每个键值对的键和值。代码执行时,进入foreach循环体,将第一个键值对的键和值分别保存到了name和score变量中,然后输出了一句话,输出结果是Name: Tom, Score: 80;接着将第二个键值对的键和值分别保存到了name和score变量中,输出结果是Name: Jerry, Score: 90;最后将第三个键值对的键和值分别保存到了name和score变量中,输出结果是Name: Mickey, Score: 85。

五、foreach注意事项

在使用foreach时,需要注意以下几点:

  1. foreach只适用于遍历数组、集合或Map等实现了Iterable接口的对象。
  2. 在foreach循环中不能修改集合或数组的元素,否则会抛出ConcurrentModificationException异常。
  3. 在遍历Map时,foreach循环中的变量类型为Map.Entry<K, V>。
  4. foreach遍历集合或数组时,只能访问其中的元素值,无法访问元素的下标或者键。