方法引用就是简化lambda表达式,而且是对于只有一行代码的lambda表达式。
Lambda表达式实现的是匿名方法——因此它只能实现特定函数式接口中的唯一方法。这意味着Lambda表达式有如下两个限制
- Lambda表达式的目标类型必须是明确的函数式接口;
- Lambda表达式只能为函数式接口创建对象;
Lambda表达式只能实现一个方法,因此它只能为只有一个抽象方法的接口(函数式接口)创建对象。
Lambda 表达式(lambda expression)是一种表达式语法
,注意在Java里面,它不是对象。
Lambda表达式是Java SE 8中一个重要的新特性。lambda表达式允许你通过表达式来代替功能接口。lambda表达式就和方法一样,它提供了一个正常的参数列表和一个使用这些参数的主体(body可以是一个表达式或一个代码块)。
集合是Java最常用的api,但是在没有Java8之前,对集合的操作非常麻烦,比如我要查询一个集合中年龄小于18岁人的姓名,并不能像SQL一样 : select name from t_person where age <18。
在 Java8 中增加了一个新的抽象接口 Stream API,使用 Stream 操作集合类似于使用 SQL 语句数据库查找数据类似,提供直观的方法进行操作。
Stream流可以对集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操作。Stream API 借助于同样新出现的Lambda表达式,极大的提高编程效率和程序可读性。
集合类主要负责保存、盛装其他数据,因此集合类也被称为容器类。Java 集合类型分为 Collection 和 Map,它们是 Java 集合的根接口,这两个接口又包含了一些子接口或实现类。
@Data:注在类上,提供类的get、set、equals、hashCode、canEqual、toString方法
使用Java8特性Stream接口,List转Map,List去重、(多字段)排序、交集、差集、并集