for-each循环提供了一种简洁安全的遍历方式,适用于数组和实现Iterable接口的集合类,语法为“for (元素类型 变量名 : 数据结构)”,可避免索引越界问题;示例中遍历整型数组和字符串列表均无需手动管理下标,代码更易读;但使用时无法修改集合结构、获取索引或进行反向遍历,适合仅读取数据的场景。

在Java中,for-each循环(也称为增强for循环)是一种简洁、安全的遍历方式,适用于数组和实现了Iterable接口的集合类。它能有效避免传统for循环中可能出现的索引越界问题,同时让代码更易读。
for-each的基本语法
for-each循环的语法结构如下:
for (元素类型 变量名 : 要遍历的数组或集合) {// 使用变量名操作当前元素
}
其中“:”左侧是声明的局部变量,右侧是要遍历的数据结构。每次循环,系统自动将下一个元素赋值给该变量。
遍历数组的示例
使用for-each遍历数组非常直观。例如,遍历一个整型数组并打印每个元素:
立即学习“Java免费学习笔记(深入)”;
- int[] numbers = {1, 2, 3, 4, 5};
- for (int num : numbers) {
- System.out.println(num);
- }
这段代码会依次输出1到5。无需关心数组长度或下标,避免了ArrayIndexOutOfBoundsException风险。
遍历集合的用法
常见集合如ArrayList、HashSet、LinkedList等都支持for-each。例如遍历一个字符串列表:
- List
names = Arrays.asList("Alice", "Bob", "Charlie"); - for (String name : names) {
- System.out.println("Hello, " + name);
- }
输出结果为每行一个问候语。注意集合中的泛型类型需与循环变量匹配,否则编译报错。
使用时的注意事项
虽然for-each写起来简单,但也有局限性:
- 无法在循环中修改集合结构(如添加或删除元素),否则会抛出ConcurrentModificationException
- 无法获取当前元素的索引位置,若需索引建议使用传统for循环
- 不适用于需要跳过某些元素或反向遍历的场景
如果只是读取数据、执行计算或打印内容,for-each是最推荐的方式。
基本上就这些。掌握for-each循环能让你的Java代码更简洁清晰,尤其适合日常开发中的大多数遍历需求。










