· 在Java8中,得益于Lambda所带来的函数式编程,引入了一个全新的Stream流概念。
· 目的:用于简化集合和数组操作的API。
· Stream流式思想的核心
1.先得到集合或者数组的Stream流(就像一根传送带)。
2.把元素放上去
3.然后就用这个Stream流简化的API来方便的操作元素。
· Stream流的三类方法
1.获取Stream流
创建一条流水线,并把数据放到流水线上准备进行操作
2.中间方法
流水线上的操作,一次操作完毕之后,还可以继续进行其他操作
3.一个Stream流只能有一个终结方法,就是流水线上的最后一个操作
· 集合获取Stream流的方式
可以使用Collecting接口中的默认方法stream()生存流
default Stream
· 数组获取Stream流的方式
public static
public static
Stream流常用的API(中间操作方法)
· Stream
· Stream
· Stream
· Stream
· static
ps:1.中间方法也称为非终结方法,调用完成后返回新的Stream流可以继续使用,支持链式编程。
2.在Stream流中无法直接修改集合,数组中的数据。
Stream流的常见终结操作方法
· void forEach(Consumer action)~~~~对此流的每个元素执行遍历操作
· long count()~~~~返回此流中的元素
ps:终结操作方法,调用完成后就无法继续使用了,原因是不会返回Stream了。
Stream流的收集操作
· 收集Stream流的含义:就是把Stream流操作后的结果数据转回到集合或数组中去。
· Stream流:方便操作集合和数组的手段。
· 集合/数组:才是开发中的目的。
Stream流的收集方法
· R collect(Collector collector)~~~~开始收集Stream流,指定收集器。
Collectors工具类提供了具体的收集方式
· public static
· public static
· public static Collector toMap(Function keyMapper,Function valueMapper)~~~~把元素收集到Map集合中