Lambda 表达式是 JDK8 引入的一种特殊语法,功能类似于匿名内部类,但更加简洁和易于理解。通过 Lambda 表达式,我们可以将行为作为函数参数传递,从而实现函数式编程。
Lambda 表达式的语法如下:
(parameter1, parameter2, ...) -> { statement1; statement2; ... }
其中,参数列表可以为空或者非空。如果参数列表非空,参数之间用逗号分隔。如果 Lambda 表达式的主体只有一条语句,那么大括号可以省略。如果 Lambda 表达式主体不止一条语句,必须用大括号将它们括起来。
例如:
// 无参数,无返回值
() -> System.out.println("Hello world!");
// 一个参数,无返回值
x -> System.out.println(x);
// 两个参数,有返回值
(x, y) -> x + y
Lambda 表达式可以用来简化我们常见的代码实现,例如:
Runnable task = new Runnable() {
@Override
public void run() {
System.out.println("Hello world!");
}
};
// 使用 Lambda 表达式实现匿名内部类
Runnable task1 = () -> System.out.println("Hello world!");
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
// 使用 foreach 遍历集合
for (int number : numbers) {
System.out.println(number);
}
// 使用 Lambda 表达式和 Stream API 遍历集合
numbers.forEach(number -> System.out.println(number));
通过上述示例,我们可以看到,Lambda 表达式的语法简洁明了,应用范围广泛。如果掌握了 Lambda 表达式的基本语法和应用技巧,我们就可以轻松实现函数式编程,提高代码的可读性和可维护性。