Java 8引入的forEach通过Lambda简化集合遍历,List使用Consumer,Map使用BiConsumer,代码更清晰但不支持break或受检异常处理。

在Java中,forEach 是一种简洁的遍历集合的方式,适用于 List 和 Map。它基于函数式接口和Lambda表达式,从 Java 8 开始引入,让代码更清晰、易读。
遍历List的forEach用法
对于 List 集合,forEach 接收一个 Consumer 函数式接口,直接对每个元素执行操作。
- 使用 Lambda 表达式遍历输出元素
- 也可以引用方法(如 System.out::println)简化代码
示例代码:
Listnames.forEach(name -> System.out.println(name));
// 或更简洁:
names.forEach(System.out::println);
遍历Map的forEach用法
Map 的 forEach 方法接收一个 BiConsumer,参数分别是键(key)和值(value),可以同时访问两者。
立即学习“Java免费学习笔记(深入)”;
- 适用于 HashMap、LinkedHashMap、TreeMap 等实现类
- Lambda 参数需按 (k, v) 顺序定义
示例代码:
Mapages.put("Alice", 25);
ages.put("Bob", 30);
ages.put("Charlie", 35);
ages.forEach((name, age) -> System.out.println(name + " is " + age + " years old"));
注意事项与使用建议
虽然 forEach 写法简洁,但有几点需要注意:
- Lambda 中无法抛出受检异常,若需处理,要自行包装
- 不支持 break 或 continue,若需跳出,考虑传统 for 循环
- 适合简单操作,复杂逻辑仍可使用增强for或迭代器










