什么是Lambda?
Lambda是JAVA 8添加的新特性,说白了,Lambda是一个匿名函数(匿名函数是无需函数名标识的函数)
为什么使用Lambda
使用Lambda表达式可以对一个接口的方法进行非常简洁的实现
Lambda对接口的要求
虽然可以使用Lambda表达式对某些接口进行简单的实现,但是并不是所有的接口都可以用Lambda表达式来实现,要求接口中定义的必须要实现的抽象方法只能是一个
在JAVA8中 ,对接口加了一个新特性:default 可以使用default对接口方法进行修饰,被修饰的方法在接口中可以默认实现
@FunctionalInterface
修饰函数式接口的,接口中的抽象方法只有一个
二、Lambda的基础语法
1.语法
2.创建多个接口
3.创建测试类
三、语法精简
针对上述基础语法的精简
1.参数类型精简
2.参数小括号精简
3.方法大括号精简
4.大括号精简补充
5.多参数,有返回值 精简
四、Lambda语法进阶
1.方法引用(普通方法与静态方法)
在实际应用过程中,一个接口在很多地方都会调用同一个实现,例如:
这样一来每次都要写上具体的实现方法 a+b,如果需求变更,则每一处实现都需要更改,基于这种情况,可以将后续的是实现更改为已定义的 方法,需要时直接调用就行
语法:
例:
2.方法引用(构造方法)
目前有一个实体类
需求
两个接口,各有一个方法,一个接口的方法需要引用Person的无参构造,一个接口的方法需要引用Person的有参构造 用于返回两个Person对象,例:
那么可以写作:
注意:是引用无参构造还是引用有参构造 在于接口定义的方法参数
五、综合练习
1.集合排序案例
2.Treeset排序案例
3.集合的遍历