您的位置:

Java For-Each循环

一、For-Each循环的介绍

在Java 5.0中,语言增加了一种新的循环,称为For-Each循环或者增强型循环。它可以遍历数组和集合类中的元素。For-Each循环使得遍历数组和集合类的代码更简洁,更易读。


// For-Each循环遍历数组
int[] numbers = {1, 2, 3, 4, 5};
for(int number : numbers) {
    System.out.print(number + " ");
}

// For-Each循环遍历集合
List<String> names = new ArrayList<>();
names.add("Lucy");
names.add("Tom");
names.add("Amy");
for(String name : names) {
    System.out.println(name);
}

二、For-Each循环的语法

For-Each循环的语法如下:


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

其中,元素类型指定了遍历对象中元素的数据类型,元素变量是一个新的局部变量名,用于存储每个对象元素的值。遍历对象可以是数组或者实现Iterable接口的集合类对象。

三、For-Each循环的优缺点

For-Each循环的优点是代码更简洁,更易于理解和维护。同时,它也可以避免一些传统for循环中常见的错误,例如数组越界和死循环问题。

For-Each循环的缺点是它只能遍历整个数组和集合,无法访问特定位置的元素。同时,遍历和操作时需要保证线程的安全性。

四、For-Each循环的应用场景

For-Each循环广泛应用于遍历数组和集合类。在遍历数组时可以避免遗漏部分元素,同时也能够保证程序的高效性。在遍历集合类对象时,需要注意遍历过程中的线程安全问题。

以下是一个使用For-Each循环遍历二维数组的例子:


int[][] numbers = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
for(int[] row : numbers) {
    for(int column : row) {
        System.out.print(column + " ");
    }
    System.out.println();
}

输出结果如下:


1 2 3 
4 5 6 
7 8 9 

五、For-Each循环的注意事项

在使用For-Each循环时,需要注意以下几点:

  1. 不能在遍历过程中修改数组或者集合中的元素,否则会抛出ConcurrentModificationException异常。
  2. 遍历对象不能为空,否则会抛出NullPointerException异常。
  3. 遍历对象必须是数组或者实现Iterable接口的集合类对象。