您的位置:

Java中for-each循环语句的使用方法

一、for-each循环概述

for-each循环是Java SE5及以上版本中新增的一种for循环语句,也被称为增强型for循环或者foreach循环。

for-each循环通过简化代码结构,使得数组、集合等集合类容易被遍历。

for(元素类型 元素变量名: 遍历对象){
    循环体代码
}

其中,元素类型是要遍历的对象的数据类型;元素变量名是遍历过程中元素的引用,不需要在循环之前声明;遍历对象可以是数组、集合等实现了Iterable接口的集合类。

二、遍历数组

for-each循环可以方便地遍历数组中的所有元素,代码如下:

public class ForEachDemo{
   public static void main(String[] args){
      int[] numArray = {1, 2, 3, 4, 5};
      for (int num : numArray){
         System.out.println(num);
      }
   }
}

运行结果如下:

1
2
3
4
5

该例中,对数组numArray进行遍历操作,将每个元素不断赋值给循环中的变量num,再输出变量num中的值。

三、遍历集合

for-each循环同样可以遍历集合类,如List、Set等,代码如下:

import java.util.ArrayList;
import java.util.List;

public class ForEachDemo{
   public static void main(String[] args){
      List<String> list = new ArrayList<>();
      list.add("apple");
      list.add("banana");
      list.add("orange");
      
      for (String str : list){
         System.out.println(str);
      }
   }
}

运行结果如下:

apple
banana
orange

该例中,对List集合进行遍历操作,将每个元素不断赋值给循环中的变量str,再输出变量str中的值。

四、遍历二维数组

for-each循环同样可以遍历二维数组,代码如下:

public class ForEachDemo{
   public static void main(String[] args){
      int[][] matrix = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
      for (int[] row : matrix){
         for (int num : row){
            System.out.print(num + " ");
         }
         System.out.println();
      }
   }
}

运行结果如下:

1 2 3 
4 5 6 
7 8 9 

该例中,遍历二维数组matrix,将每个一维数组赋值给循环中的变量row,并再通过for-each循环遍历输出该一维数组中的值num。

五、for-each循环的注意事项

1. for-each循环不支持在遍历过程中修改遍历对象中的元素。

例如,下面的示例中,不能用for-each循环遍历列表中的元素,并通过删除列表中的元素来改变列表的大小。

List<String> list = new ArrayList<>();
for (String str : list){
   list.remove(str);
}

2. for-each循环要求遍历对象必须实现了Iterable接口,且Iterable接口中定义了iterator()方法,否则编译时会出错。

3. 对于遍历过程中未使用的元素,可以使用下划线代替,如下所示:

int[] numArray = {1, 2, 3};
for (int _ : numArray){
   System.out.println("Hello");
}

运行结果如下:

Hello
Hello
Hello

六、总结

for-each循环是一种简洁、易用的遍历语句,可以遍历数组、集合等Iterable实现类对象。在编写Java代码时,使用for-each循环可使代码更加简洁、清晰。