Java中遍历集合最简洁方式是用forEach()配合Lambda表达式;需索引时可用IntStream.range()或增强for循环;Map遍历推荐entrySet()或map.forEach();forEach不可用break/continue中断。

Java 中用 Lambda 表达式遍历集合元素,最常用、最简洁的方式是调用集合的 forEach() 方法,配合 Lambda 写法实现。
用 forEach + Lambda 遍历 List、Set 等
只要集合实现了 Iterable 接口(如 ArrayList、HashSet、LinkedList),就能直接使用 forEach():
- 语法:
collection.forEach( (element) -> { /* 处理逻辑 */ } ); - 如果只有一行语句,可省略大括号和分号;参数类型通常可省略(编译器自动推导)
示例:
List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
names.forEach(name -> System.out.println("Hello: " + name));
// 输出:
// Hello: Alice
// Hello: Bob
// Hello: Charlie
遍历时需要索引?用传统 for 或 IntStream
forEach() 本身不提供索引。若需带下标操作,有以下两种常用方式:
立即学习“Java免费学习笔记(深入)”;
- 用
IntStream.range(0, list.size())配合forEach:
List<String> items = Arrays.asList("a", "b", "c");
IntStream.range(0, items.size())
.forEach(i -> System.out.println(i + ": " + items.get(i)));
- 或用增强 for 循环配合外部计数器(简单场景够用)
遍历 Map 的键、值或键值对
Map 本身不直接支持 forEach,但它的视图(keySet()、values()、entrySet())可以:
- 遍历值:
map.values().forEach(value -> ...) - 遍历键:
map.keySet().forEach(key -> ...) - 遍历键值对(推荐):
map.entrySet().forEach(entry -> System.out.println(entry.getKey() + "=" + entry.getValue()));
也可用更清晰的写法(JDK 8+):
map.forEach((key, value) -> System.out.println(key + " → " + value));
注意:Lambda 遍历 ≠ 可中断或控制流程
forEach() 是内部迭代,无法用 break 或 continue 控制流程。若需提前退出,应改用传统 for 循环或 stream().anyMatch() / stream().findFirst() 等终止操作。
另外,Lambda 中修改外部局部变量需满足“有效 final”条件——变量不能在 Lambda 外被重新赋值。


















