【JDK1.8新特性】Lambda表达式(附带例子)
1、Lambda表达式定义
(1)Lambda表达式是 Java8 中最重要的新功能之一。使用 Lambda 表达式可以替代只有一个抽象函数的接口实现,告别匿名内部类,代码看起来更简洁易懂。Lambda表达式同时还提升了对集合、框架的迭代、遍历、过滤数据的操作。
(2)Lambda表达式是对象,是一个函数式接口的实例
2、Lambda表达式特点
1:函数式编程
2:参数类型自动推断
3:代码量少,简洁
3、Lambda表达式语法
LambdaParameters -> LambdaBody
args -> expr
或者
(Object… args) -> {函数式接口抽象方法实现逻辑}
()里面参数的个数,根据函数式接口里面抽象方法的参数个数来决定。
当只有一个参数的时候,()可以省略
当expr逻辑非常简单的时候,{}和return可以省略
4、Lambda表达式示例
() -> {} // 无参,无返回值
() -> { System.out.println(1); } // 无参,无返回值
() -> System.out.println(1) // 无参,无返回值(上面的简写)
() -> { return 100; } // 无参,有返回值
() -> 100 // 无参,有返回值(上面的简写)
() -> null // 无参,有返回值(返回null)
(int x) -> { return x+1; } // 单个参数,有返回值
(int x) -> x+1 // 单个参数,有返回值(上面的简写)
(x) -> x+1 // 单个参数,有返回值(不指定参数类型,多个参数必须用括号)
x -> x+1 // 单个参数,有返回值(不指定参数类型)
5、如何学好Lambda表达式
1:熟悉泛型
2:多练,多用Stream API
6、Lambda表达式使用场景
任何有函数式接口的地方