在Java中,Lambda表达式是一种简洁的函数式编程特性,它允许你以简洁的方式表示匿名函数1。下面是一些关于Java中Lambda表达式的基本信息2:
基本语法3
(parameters) -> expression 或 (parameters) -> { statements; }
-
parameters
是输入参数列表6。 -
->
是箭头操作符,用于分隔参数列表和函数体7。 -
expression
是一个返回值的表达式3。 -
statements
是一个或多个语句的代码块4。
特征
-
可选类型声明 :如果编译器可以推断出参数类型,则可以省略类型声明。
-
可选的参数圆括号 :如果只有一个参数,可以省略圆括号。
-
可选的大括号 :如果函数体只包含一个表达式,可以省略大括号。
-
可选的返回关键字 :如果函数体只有一个表达式,可以省略
return
关键字4。
示例
// 不需要参数,返回值为 5
() -> 5
// 接收一个参数(数字类型),返回其2倍的值
x -> 2 * x
// 接受2个参数(数字),并返回他们的和
(x, y) -> x + y
// 接收2个int型整数,返回他们的和
(int x, int y) -> x + y
// 接受一个String对象,并在控制台打印,不返回任何值
(String s) -> System.out.println(s)
使用场景
Lambda表达式可以用于各种场景,包括集合操作、事件处理等5。例如,使用Lambda表达式简化集合的排序操作7:
List<Integer> numbers = Arrays.asList(3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5);
numbers.sort((a, b) -> b - a); // 使用Lambda表达式进行降序排序
注意事项
-
Lambda表达式只能用于具有 单一抽象方法 的接口,即 函数式接口 3。
-
使用Lambda表达式可以让代码更加简洁,但过度使用可能会降低代码的可读性和可维护性1。
希望这些信息能帮助你理解Java中的Lambda表达式2