Skip to content

Java 8 新特性

什么是Stream

流(Stream)与集合类似,但集合中保存的是数据,而Stream中保存对集合或数组数据的操作。

原料 -> 工序1 -> 工序2 -> 工序n -> 产品

Stream特点

  • Stream自己不会存储元素
  • Steram不会改变源对象。相关,他们会返回一个持有结果的新Stream
  • Stream操作是延迟执行的,会等到需要结果的时候才执行

Stream使用步骤

  1. 创建

    新建一个流

  2. 中间操作

    在一个或多个步骤中,将初始化Stream转化到另一个Stream的中间操作

  3. 终止操作

    使用一个终止操作来产生一个结果。该操作会强制之前的延迟操作立即执行,在此之后,该Stream就不能使用了

创建Stream

  • 通过Collection对象的steram或parallelStream方法

  • 通过Arrays类的stream方法

  • 通过Stream接口的of、iterate、generate方法

  • 通过IntStream、LongStream、DoubleStream接口中的of、range、rangeClosed方法

中间操作

  • filter、limit、skip、distinct、sorted
  • map
  • parallel

终止操作

  • forEach、min、max、count
  • reduce、collect