一、Lambda 表达式
Lambda 是匿名函数的简洁写法,配合函数式接口(只有一个抽象方法的接口,如 Runnable、Comparator)使用。
List<String> list = Arrays.asList("b","a","c");
list.sort((x, y) -> x.compareTo(y)); // 替代匿名内部类
new Thread(() -> System.out.println("hi")).start();
二、方法引用
当 Lambda 只是调用已有方法,可用 :: 简化:
list.forEach(System.out::println);
Function<String, Integer> f = String::length;
三、常见函数式接口
| 接口 | 方法 |
|---|---|
| Predicate<T> | boolean test(T) |
| Function<T,R> | R apply(T) |
| Consumer<T> | void accept(T) |
| Supplier<T> | T get() |
Lambda 让集合操作和回调代码大幅精简,是 Java 8 最重要的语法糖。