使用流收集数据

流的特征

流最重要的几个特征。

流的三要素

流由下述三个要素构成。

collect() 方法

collect() 方法可对流的元素进行转换和分组,生成一个含有流最终结果的新数据结构。

可以使用多达三种不同的数据类型:

  1. 一种输入数据类型,即来自流的输入元素的数据类型;
  2. 一种中间数据类型,用于在 collect() 方法运行过程中存放元素;
  3. 一种输出数据类型,它由 collect() 方法返回。

collect() 方法有两个版本。

collect()第一个版本

第一个版本接收下述三种函数型参数。

这个版本的 collect() 方法用到了两种不同的数据类型:

  1. 来自流的元素的输入数据类型
  2. 用于存放中间元素并返回最终结果的中间数据类型。

collect()第二个版本

collect() 方法的第二个版本接收一个实现 Collector 接口的对象。

可以自己实现该接口,但是使用 Collector.of() 静态方法更容易。

该方法的参数如下所示。

预定义的收集器

Java 在 Collector 工厂类中提供了一些预定义的收集器。
可以通过这些收集器的静态方法获得这些收集器。

如下是其中的一些方法。