温馨提示×

温馨提示×

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

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

java Lambda表达式怎么用

发布时间:2026-10-02 16:13:13 来源:亿速云 阅读:83 作者:小樊 栏目:编程语言

Java 中的 Lambda 表达式 是 Java 8 引入的重要特性,主要用于简化函数式接口(只有一个抽象方法的接口)的实现,常见于集合操作、线程、事件处理等场景。


一、Lambda 表达式基本语法

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

示例对比(传统 vs Lambda)

传统匿名内部类:

new Thread(new Runnable() {
    @Override
    public void run() {
        System.out.println("线程执行");
    }
}).start();

使用 Lambda:

new Thread(() -> System.out.println("线程执行")).start();

二、Lambda 的常见使用场景

1️⃣ 函数式接口(重点)

函数式接口:只有一个抽象方法的接口(可用 @FunctionalInterface 标注)

@FunctionalInterface
interface MyInterface {
    void show(String msg);
}

使用 Lambda:

MyInterface mi = (msg) -> System.out.println(msg);
mi.show("Hello Lambda");

2️⃣ 常见内置函数式接口(java.util.function)

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

3️⃣ 结合集合使用(最常用)

List 遍历

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

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

排序

list.sort((a, b) -> a.compareTo(b));

过滤(Stream)

list.stream()
    .filter(s -> s.startsWith("a"))
    .forEach(System.out::println);

4️⃣ 方法引用(Lambda 简化写法)

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

常见形式:

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

三、Lambda 使用注意点

✅ 只能用于函数式接口
✅ 参数类型可以省略(编译器推断)
✅ 方法体只有一行可省略 {} 和 return
❌ 不能直接使用非 final 的局部变量(effectively final)

int num = 10;
Runnable r = () -> System.out.println(num); // OK

四、简单总结

Lambda = 更简洁的“方法作为参数”

如果你愿意,我也可以:

  • 用 真实业务例子 讲
  • 对比 匿名内部类 vs Lambda
  • 讲 Stream + Lambda 实战

你目前是初学者还是准备面试/项目中使用?

向AI问一下细节

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

AI
助
手