Lambda表达式是Java SE 8中一个重要的新特性,需要Java 8或以上版本的jdk环境才可使用
lambda表达式简介
Lambda表达式的本质只是一个"语法糖",由编译器推断并帮你转换包装为常规的代码,因此你可以使用更少的代码来实现同样的功能。
基本语法
(parameters) -> expression 或者 (parameters) ->{ statements; }
简单例子
参数/返回值 | 表达形式 |
---|---|
无参,返回值为5 | () -> 5 |
接收一个参数(int型),返回其2倍的值 | x -> 2 * x |
接受2个参数(int型),并返回他们的差值 | (x, y) -> x - y |
接收2个参数(int型),返回他们的和 | (x, y) -> x + y |
接收一个参数(String型),并在控制台打印,无返回值 | s -> System.out.print(s) |
基本例子
foreach循环中使用lambda
for (String player : players) {
System.out.print(player + "; ");
}
// 使用 lambda 表达式
players.forEach((player) -> System.out.print(player + "; "));
// 在 Java 8 中使用双冒号操作符
players.forEach(System.out::println);
使用匿名内部类中使用lambda表达式
new Thread(new Runnable() {
@Override
public void run() {
System.out.println("Hello world !");
}
}).start();
// 使用 lambda 表达式
new Thread(() -> System.out.println("Hello world !")).start();
Runnable race1 = new Runnable() {
@Override
public void run() {
System.out.println("Hello world !");
}
};
//使用 lambda 表达式
Runnable race2 = () -> System.out.println("Hello world !");