Stream流基础

1.stream流的操作特性:
  • stream不存存储数据;
  • stream不改变源数据;
  • stream不可重复使用;(stream完成一步操作后返回一个新的流,旧的流被关闭)
2.流的操作类型:
  • 中间操作:调用中间操作会返回一个新的流.通过连续执行多个操作便组成stream的执行管道,这些管道被添加后并不会真正执行,只有等到调用终止操作才回被执行;
  • 终止操作:调用该操作后执行之前所有的中间操作,终止操作不会返回新的stream;
  • 中间操作可以有多个,终止操作只能有一个;
  • stream.java API中的方法返回stream对象或stream子类对象的为中间操作,没有返回stream对象的为终止操作;
3.流的执行顺序:Stream流基础
  • 源数据(集合等)中的每个元素作为参数挨个去调用中间操作及终止操作
4.Stream流的并行执行:
  • 调用Stream.parallel()方法可以将流基于多个线程并行执行;
5.Stream中常用的API及场景:

Stream流基础

  • flatMap:将数组,集合等进行降维成一个一个对象;
  • peek:与forEach类似,区别是peek是中间操作,forEach为终值操作;
  • reduce:对Stream进行规约操作,如:求最大值,最小值,统计等;
  • collect: 采集数据,返回一个新的结果(比较重要的一个方法)
    Stream流基础
    Stream流基础