Java 8 的时代背景
Java 在函数式编程上的不足
Lambda 和 Stream 的引入目的
Lambda 表达式
基础语法
示例:import java.util.Arrays;
import java.util.List;
public class LambdaExample {
public static void main(String[] args) {
List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
names.forEach(name -> System.out.println(name));
}
}
输出:Alice
Bob
CharlieStream API
创建 Stream
常用操作(map, filter, reduce, collect)
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6);
List<Integer> evenSquares = numbers.stream()
.filter(n -> n % 2 == 0)
.map(n -> n * n)
.toList();
System.out.println(evenSquares); // 输出 [4, 16, 36]
示例:结合 Lambda 与 Stream 的实战场景
对集合对象排序、统计、过滤
处理复杂业务逻辑
总结与注意事项
Lambda 表达式的闭包限制
Stream API 的延迟计算
图片建议
Java 8 特性对比图(传统 for 循环 vs Stream)
Stream 数据流向示意图