11-收集流中的元素
6.4 收集流中的元素
Java流便于开发者按顺序或并行地处理一系列元素。可以从不同的数据源创建流(比如 Collection
、 File
或 Array)
,然后应用一系列通常由lambda表达式定义的操作到流的元素上。这些操作可以划分为两种不同的种类。
- 中间操作: 这些操作返回一个新的
Stream
作为结果,能过滤、转换或排序流的元素。 - 结尾操作: 这些操作在处理完流的元素之后返回一个结果。
一个流有一个源、零个或多个中间操作,以及一个结尾操作。而最重要的两个结尾操作如下。
- 归约操作:它能让你在处理完流的所有元素之后获得唯一的结果。这个结果通常是所有元素的总计。6.3节已经阐述了如何在Java里使用归约操作。
- 收集操作:它能让你用元素的处理结果生成一种数据结构。由于这种数据结构是可变的,所以收集操作也称为可变归约操作。
本节将介绍如何在Java流中用不同版本的 collect()
方法和辅助的 Collectors
类来执行收集操作。