Java8函数式编程(二):Stream

在Collection中新加了一个默认方法

default Stream stream() {
    return StreamSupport.stream(spliterator(), false);
}

这个方法的作用是返回一个stream,这到底是用来做什么的呢?

A sequence of elements supporting sequential and parallel aggregate operations.

想想看为什么在那个方法会定义在Collection接口中呢?肯定用来用来操作容器类的。可以把Stream看成一个流式的迭代器,Stream里有很多功能强大的方法。

Java8函数式编程(二):Stream_第1张图片

从上图可知stream的使用分为三个阶段:

  1. 创建Stream(可以通过Stream静态方法或者图中的方法创建)
  2. 转换Stream(Stream中的方法)
  3. 聚合(reduce)

关于Stream中的方法,常见的有:

distinct
filter
map
flatMap
peek
limit
skip

聚合(reduce)分为两种:

  • 聚合成一个容器
  • 聚合成一个数值

关于聚合的常用方法有:

  1. collect
  2. reduce
  3. count
  4. sum
  5. allMatch

鸣谢:并发编程网 - ifeve.com

你可能感兴趣的:(Java8函数式编程(二):Stream)