温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java Lambda语法如何写

发布时间:2026-10-23 07:53:24 来源:亿速云 阅读:88 作者:小樊 栏目:编程语言

Java 中的 Lambda 表达式 是 Java 8 引入的,用来简化**函数式接口(只有一个抽象方法的接口)**的实现。

下面从基本语法 → 常见用法 → 示例一步步说明。


一、Lambda 基本语法

(参数列表) -> { 方法体 }

简化规则

  1. 参数类型可以省略
  2. 只有一个参数时,括号可以省略
  3. 方法体只有一行时,大括号和 return 可以省略

二、最基础的例子

1️⃣ 无参数

Runnable r = () -> System.out.println("Hello Lambda");
r.run();

等价于:

Runnable r = new Runnable() {
    @Override
    public void run() {
        System.out.println("Hello Lambda");
    }
};

2️⃣ 一个参数

Consumer<String> c = s -> System.out.println(s);
c.accept("Hello");

3️⃣ 多个参数

BiFunction<Integer, Integer, Integer> add = (a, b) -> a + b;
System.out.println(add.apply(2, 3));

三、常见函数式接口(java.util.function)

接口 方法 说明
Runnable run() 无参无返回值
Consumer<T> accept(T) 有参无返回值
Supplier<T> get() 无参有返回值
Function<T,R> apply(T) 有参有返回值
Predicate<T> test(T) 有参返回 boolean

四、集合中的 Lambda(最常用)

1️⃣ List 遍历

List<String> list = Arrays.asList("a", "b", "c");

list.forEach(s -> System.out.println(s));

或更简洁:

list.forEach(System.out::println);

2️⃣ 排序

List<Integer> nums = Arrays.asList(3, 1, 2);
nums.sort((a, b) -> a - b);

3️⃣ Stream + Lambda(重点)

List<Integer> result = nums.stream()
    .filter(n -> n > 1)
    .map(n -> n * 2)
    .collect(Collectors.toList());

五、方法引用(Lambda 的简写)

list.forEach(System.out::println);

等价:

list.forEach(s -> System.out.println(s));

常见形式:

  • 对象::方法
  • 类::静态方法
  • 类::实例方法
  • 类::new

六、自定义函数式接口

@FunctionalInterface
interface MyInterface {
    int calculate(int a, int b);
}

MyInterface mi = (a, b) -> a + b;
System.out.println(mi.calculate(2, 3));

七、一句话总结

Lambda = 参数 -> 行为,用来简化函数式接口的实现

如果你愿意,我可以:

  • 给你 Lambda 练习题目
  • 对比 匿名内部类 vs Lambda
  • 讲 Lambda 底层原理(invokedynamic)

你想从哪方面继续?

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手