一、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循环时,需要注意以下几点:
- 不能在遍历过程中修改数组或者集合中的元素,否则会抛出ConcurrentModificationException异常。
- 遍历对象不能为空,否则会抛出NullPointerException异常。
- 遍历对象必须是数组或者实现Iterable接口的集合类对象。