Karnett的个人小站

Java 8 新特性深度解析——Lambda 与 Stream

2025/11/29
6
0
  • 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
Charlie

Stream 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]
示例:
  1. 结合 Lambda 与 Stream 的实战场景

    • 对集合对象排序、统计、过滤

    • 处理复杂业务逻辑

  2. 总结与注意事项

    • Lambda 表达式的闭包限制

    • Stream API 的延迟计算

图片建议

  • Java 8 特性对比图(传统 for 循环 vs Stream)

  • Stream 数据流向示意图