lambda如何使用java
Lambda 表达式在 Java 中的使用
Lambda 表达式是 Java 8 引入的一种简洁的匿名函数表示方式,主要用于实现函数式接口(Functional Interface)。以下是 Lambda 在 Java 中的核心用法和示例:
基本语法
Lambda 表达式的基本语法如下:
(parameters) -> expression
或

(parameters) -> { statements; }
- parameters:参数列表,可以为空或包含多个参数。
- ->:Lambda 操作符。
- expression/statements:单行表达式或多行代码块。
常见使用场景
1. 实现函数式接口
Lambda 主要用于实现仅包含一个抽象方法的接口(如 Runnable、Comparator 等)。
// 传统匿名类
Runnable r1 = new Runnable() {
@Override
public void run() {
System.out.println("Hello");
}
};
// Lambda 简化
Runnable r2 = () -> System.out.println("Hello");
2. 集合操作
结合 Java Stream API 进行集合处理:

List<String> list = Arrays.asList("a", "b", "c");
list.forEach(item -> System.out.println(item));
3. 排序
简化 Comparator 的实现:
List<String> names = Arrays.asList("John", "Alice", "Bob");
names.sort((a, b) -> a.compareTo(b));
方法引用
Lambda 的进一步简化,通过 :: 操作符引用已有方法。
// Lambda 形式
list.forEach(s -> System.out.println(s));
// 方法引用
list.forEach(System.out::println);
注意事项
- 函数式接口:Lambda 只能用于实现函数式接口(如
@FunctionalInterface标注的接口)。 - 类型推断:参数类型可省略,由编译器推断。
- 变量作用域:Lambda 可访问外部
final或等效final的局部变量。
示例代码
import java.util.Arrays;
import java.util.List;
public class LambdaExample {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(1, 2, 3, 4);
// Lambda 遍历
numbers.forEach(n -> System.out.println(n * 2));
// 过滤并收集
numbers.stream()
.filter(n -> n % 2 == 0)
.forEach(System.out::println);
}
}
通过以上方式,可以高效地利用 Lambda 表达式简化代码并提升可读性。






