1.lambda表达式
1.1lambda表达式的简介
Lambda表达式是 jdk1.8 引入的一个新特性,它是函数式编程在Java中的一种体现。也是1.8最值得学习的新特性。
Lambda表达式的引入简化了匿名内部类的语法,让代码更加简洁明了。
Lambda表达式提供了一种便捷的语法形式,使得函数可以作为参数传递给方法,或者作为返回值返回。
Lambda表达式的引入使得Java在并行编程方面具备了更好的支持。
lambda表达式本质来讲,是一个匿名函数(匿名方法)。
1.2lambda表达式的语法:
(parameters) -> expression
或者
(parameters) -> { statements;}
解析:
-
箭头(->)将参数与Lambda主体分隔开来。
-
参数部分:
-
参数可以是任意合法的Java参数列表,可以为空或包含一个或多个参数。
-
参数列表的类型名可以省略。 不能出现有些省略了,有些没有省略的情况。
-
如果参数列表中,参数的数量有且只有一个,则小括号可以省略。
-
-
Lambda主体:
-
Lambda主体可以是一个表达式,表达式外的大括号,可加可不加。 没有大括号时,return关键字必须省略。
-
也可以是一个代码块。将按照常规的Java语法执行,并且您可能需要使用return语句来返回值。
-
1.3语法案例:
-
无参数的Lambda表达式:
() -> System.out.println("Hello, Lambda!");
-
带有参数的Lambda表达式:
(int m) -> System.out.println(m);
或
(m) -> System.out.println(m);
或
m -> System.out.println(m);
(int x, int y) -> System.out.println(x + y);
或者
(x, y) -> System.out.println(x + y); -
带有多行代码的Lambda表达式:
(x, y) -> {
int sum = x + y;
System.out.println("Sum: " + sum);
return sum;
}