Lambda表达式是java8中最重要的新功能之一。使用Lambda表达式可以替代只有一个抽象函数的接口实现,告别匿名内部类,代码看起来更简洁易懂。Lambda表达式同时还提升了对集合、框架的迭代、遍历、过滤数据的操作。
任何有函数式接口的地方
1、函数式编程
2、参数类型自动推断
3、代码量少,简洁
只有一个抽象方法(Object类中的方法除外)的接口是函数式接口
@FunctionalInterface
常用的接口:
Supplier:代表一个输出
Consumer:代表一个输入
BiConsumer:代表两个输入
Function:代表一个输入一个输出(一般输入和输出是不同类型的)
UnaryOperator:代表一个输入一个输出(输入和输出是相同类型的)
BiFunction:代表两个输入一个输出(一般输入和输出是不同类型的)
BinaryOperator:代表两个输入一个输出(输入和输出是相同类型的)
()-> {}