1. 什么是 Lambda 表达式?
Lambda 表达式,也叫匿名函数,是 Java 8 引入的一种函数式编程写法。
它允许我们用更简洁的方式表示一个可以传递的行为,而不必像以前那样定义一个完整的类或方法。
特点:
- 轻量级:不需要单独写实现类
- 可以作为参数传递
- 让代码更简洁
2. Lambda 的基本语法
Lambda 的语法格式如下:
(参数列表) -> { 方法体 }
如果方法体只有一条语句,可以省略大括号 {}
和 return
:
(参数列表) -> 表达式
3. 简单例子
假设我们有一个字符串列表,想要打印每个字符串:
import java.util.Arrays;
import java.util.List;
public class LambdaExample {
public static void main(String[] args) {
List<String> list = Arrays.asList("Java", "Python", "C++");
// 使用 Lambda 打印每个元素
list.forEach(s -> System.out.println(s));
}
}
运行结果:
Java
Python
C++
解释:
s -> System.out.println(s)
是一个 Lambda 表达式,相当于给forEach
提供了一个“执行行为”。
4. Lambda 与方法引用
如果 Lambda 体仅仅调用一个已有方法,可以使用 方法引用(Method Reference):
list.forEach(System.out::println);
效果与 Lambda 相同,但代码更简洁。
5. 带返回值的 Lambda
假设我们想计算两个整数的和,可以写一个 Lambda 表达式:
interface Calculator {
int calc(int a, int b);
}
public class LambdaReturn {
public static void main(String[] args) {
Calculator sum = (a, b) -> a + b;
System.out.println(sum.calc(5, 3)); // 输出 8
}
}
Lambda 表达式
(a, b) -> a + b
实现了Calculator
接口的calc
方法。
6. 小结
- Lambda 是 Java 8 引入的匿名函数写法
- 用法简单,代码更简洁
- 可以结合方法引用进一步优化代码
- 可作为参数传递,实现函数式编程思想
7. 练习
- 使用 Lambda 打印一个整数列表的每个元素
- 用 Lambda 实现一个接口,计算两个数的乘积
- 尝试把 Lambda 替换为方法引用
作者提示:
Lambda 是现代 Java 开发必会的技能,掌握它可以让你的代码更加优雅。