主要针对集合或数组进行一系列流水线式的中间操作
stream不会 存储元素,不会改变原对象,stream操作是延迟加载的,直到终止操作才能出发所有中间操作
一、
1.创建stream流:
Collection的stream()或parallelStream()
Arrays的静态方法stream()获取数组流
Stream类的静态方法of()
创建无限流 Stream.iterate接受T返回T
Stream.generate返回T
2.中间操作
filter:接受lambda,从流中排除元素
limit:截断,使其元素不超过指定数量
skip:跳过前n个,与limit互补,如果流中数据不足则返回空流
distinct:去重
map:对流中的每个元素操作
flatmap:接收一个函数作为参数,将流中的每个值都转换为一个新的流并连接
sorted:自然排序,(e1,e2->{})定制排序
查找与匹配:
allMatch:检查是否匹配所有元素
anyMatch:检查是否匹配至少一个元素
noneMagtch:检查是否没有匹配所有元素
findFirst:返回第一个元素
findAny:返回当前流中的任意元素
count:返回流中元素总个数
max:最大值,min:最小值
reduce:规约,可以将流中数据反复结合起来形成新值
3.终止操作
forEach:遍历
collect:接受一个collector接口的实现,将流转换为该形式