在Java中,匿名函数也称为Lambda表达式。它们是一种简洁的方式来表示可传递的代码块。Lambda表达式允许你直接将函数作为参数传递给方法或保存在变量中,而无需创建单独的类。
Lambda表达式的基本语法如下:
(parameter list) -> {body}
其中,参数列表定义了传递给Lambda表达式的参数,箭头"->"用于分隔参数列表和Lambda表达式的主体,主体包含了Lambda表达式的功能。
例如,假设你有一个接口Calculator
定义了一个抽象方法int calculate(int a, int b)
,你可以使用Lambda表达式来实现该接口:
interface Calculator {
int calculate(int a, int b);
}
Calculator add = (a, b) -> a + b;
System.out.println(add.calculate(5, 3)); // 输出8
在这个例子中,(a, b) -> a + b
就是一个Lambda表达式,它实现了calculate
方法,并返回了两个参数的和。
除了作为接口实现外,Lambda表达式还可以用于集合操作,比如筛选、映射等:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
numbers.stream()
.filter(n -> n % 2 == 0) // 筛选出偶数
.map(n -> n * n) // 对每个偶数进行平方运算
.forEach(System.out::println); // 输出结果
在这个例子中,n -> n % 2 == 0
和n -> n * n
分别是Lambda表达式,用于筛选偶数和计算平方。