Lamda表达式
1.匿名内部类
可用() -> {}代码块
2.forEach遍历集合
集合名称.forEach(集合泛型-> 要干什么);
双冒号::(不需要参数的) 表示方法引用,可以引用其他方法
3.filter对集合进行过滤
单个过滤条件:传入Predicate对象(描述过滤条件)
集合名.stream().filter(过滤条件)
多个过滤条件:
多次filter传入不同Predicate对象
集合名.stream().filter(过滤条件)
.filter(过滤条件)
通过Predicate对象的and or 方法
集合名.stream().filter(过滤条件.and(过滤条件))
4.limit限制结果集数据量
控制结果集返回数据条数:集合名.stream().limit(返回条数).filter(过滤条件)
5.sorted排序
按自定义规则对数据进行排序(数字和字符串)
集合名.stream().sorted((参数))
集合名.stream().sorted(Comparator.comparing)
6.max min 获取结果中最大值最小值
集合名.stream().max(Comparator.comparing)
7.map:对集合中每个元素遍历并且可操作
集合名.stream().map
8.reduce:对所有值进行操作,按照处理逻辑将结果处理合并为一个
集合名.stream().reduce
9.collect 以集合中的元素为基础,生成新对象
10.summaryStatistics 计算集合元素中的最大最小平均
集合名.stream().mapToInt(e -> e).summaryStatistics()
statistics对象.getMax()
11.distinct去重
12.四个常用接口
1.Predicate接口:输入一个参数,返回一个boolean值,内置了许多用于逻辑判断的默认方法
2.Consumer接口:对输入的参数进行操作。有输入没输出
3.Function接口:接受一个参数,返回单一的结果。默认的方法(andThen)可将多个函数串在一起,形成复合Funtion(有输入,有输出)结果
4.Supplier接口:返回一个给定类型的结果。不需要输入参数,无输入有输出