Java中Lambda 表达式的解释
从 Java 8 开始,Lambda 表达式成为 Java 的一等公民。它不仅让代码更简洁,还为函数式编程打开了大门。如果你还没真正理解或使用过 Lambda,这篇文章就是为你写的。
一、什么是 Lambda 表达式?
Lambda 表达式是 Java 中的一种匿名函数写法,可以把函数作为参数传递。
它的作用就是:用更简洁的方式实现接口中的唯一抽象方法(即函数式接口)。
我觉得需要强调的是:只要这个接口满足 只包含一个抽象方法,就可以是函数式接口,即使它没有加 @FunctionalInterface
注解!!!
二、 基本语法
(参数列表) -> { 方法体 }
常见形式:
示例 | 含义 |
---|---|
() -> System.out.println("Hello") | 无参无返回值 |
(x) -> x * x | 单个参数有返回 |
(a, b) -> a + b | 多个参数返回结果 |
(x, y) -> { return x * y; } | 有代码块时用 {} |
三、 使用 Lambda 的前提:函数式接口
Lambda 表达式只能用于函数式接口,即只包含一个抽象方法的接口。
Java 提供了许多常用的函数式接口,比如:
接口 | 方法签名 | 说明 |
---|---|---|
Runnable | void run() | 无参无返回值 |
Consumer<T> | void accept(T t) | 消费一个值 |
Supplier<T> | T get() | 提供一个值 |
Function<T,R> | R apply(T t) | 转换/映射值 |
Predicate<T> | boolean test(T t) | 条件判断 |
四、Lambda 的代码的示例
List<String> list = Arrays.asList("banana", "apple", "kiwi");// 按字符串长度排序
list.sort((s1, s2) -> s1.length() - s2.length());System.out.println(list); // [kiwi, apple, banana]