温馨提示×

温馨提示×

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

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

java Lambda表达式有何用

发布时间:2026-10-02 18:17:15 来源:亿速云 阅读:97 作者:小樊 栏目:编程语言

Java 中的 Lambda 表达式(λ 表达式)是自 Java 8 引入的重要特性,主要用来简化代码、支持函数式编程。下面从“有什么用”和“为什么有用”两个方面说明。


一、Lambda 表达式的主要用途

1️⃣ 简化匿名内部类

以前写接口实现要用匿名内部类,代码冗长:

new Thread(new Runnable() {
    @Override
    public void run() {
        System.out.println("Hello");
    }
}).start();

使用 Lambda 后:

new Thread(() -> System.out.println("Hello")).start();

✅ 代码更短、可读性更高


2️⃣ 配合函数式接口(Functional Interface)

Lambda 只能用于只有一个抽象方法的接口(如 Runnable、Comparator、Function)。

Comparator<Integer> c = (a, b) -> a - b;

常见函数式接口:

  • Runnable
  • Callable
  • Comparator
  • Function<T, R>
  • Predicate<T>
  • Consumer<T>

3️⃣ 简化集合操作(Stream API)

Lambda 是 Stream API 的核心:

List<Integer> list = Arrays.asList(1, 2, 3, 4);
list.stream()
    .filter(x -> x % 2 == 0)
    .forEach(System.out::println);

✅ 支持声明式编程,更关注“做什么”而不是“怎么做”


4️⃣ 将行为作为参数传递(行为参数化)

可以把逻辑当参数传:

public void process(List<Integer> list, Predicate<Integer> condition) {
    list.stream().filter(condition).forEach(System.out::println);
}

process(list, x -> x > 2);

✅ 提高代码复用性和灵活性


5️⃣ 支持函数式编程思想

  • 函数是一等公民(近似)
  • 减少副作用
  • 更易于并行处理(如 parallelStream())

二、Lambda 的本质

Lambda 表达式在 JVM 中:

  • 不是匿名类
  • 是通过 invokedynamic 实现的
  • 性能通常优于匿名内部类

三、什么时候不适合用 Lambda?

  • 逻辑非常复杂(可读性下降)
  • 需要 this 指向外部类
  • 需要序列化(Lambda 序列化不稳定)

四、一句话总结

Java Lambda 表达式用于简化代码、支持函数式编程,尤其适合事件处理、线程、集合操作和逻辑复用。

如果你愿意,我可以用对比示例或面试角度再讲一遍。

向AI问一下细节

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

AI
助
手