在 Java 中,Lambda 表达式是一种**简洁表示“可传递的匿名函数”的语法,用于简化函数式接口(只有一个抽象方法的接口)**的实现。
在 Java 8 之前,如果你想使用接口(比如 Runnable),通常需要写匿名内部类:
new Thread(new Runnable() {
@Override
public void run() {
System.out.println("线程执行");
}
}).start();
Lambda 可以让上面的代码更简洁:
new Thread(() -> System.out.println("线程执行")).start();
(参数列表) -> { 方法体 }
() -> System.out.println("Hello");
x -> x * x
(a, b) -> a + b
(a, b) -> {
int sum = a + b;
return sum;
}
函数式接口:只有一个抽象方法的接口
常用注解:@FunctionalInterface
@FunctionalInterface
interface MyInterface {
void show();
}
使用 Lambda:
MyInterface m = () -> System.out.println("Hello");
m.show();
List<String> list = Arrays.asList("a", "b", "c");
list.forEach(s -> System.out.println(s));
Runnable r = () -> System.out.println("run");
new Thread(r).start();
List<Integer> nums = Arrays.asList(3, 1, 2);
nums.sort((a, b) -> a - b);
list.forEach(System.out::println);
等价于:
list.forEach(s -> System.out.println(s));
Lambda 表达式 = 简化函数式接口实现的语法糖,让 Java 更像“函数式编程语言”。
如果你愿意,我也可以帮你:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。