Java 将顺序流转换为并行流,无论默认情况如何,用户希望创建顺序流(sequential stream)或并行流(parallel stream)。既可以使用 Collection 接口定义的 stream 或 parallelStream 方法,也可以使用 BaseStream 接口定义的 sequential 或 parallel 方法。
Java 将顺序流转换为并行流 问题描述
无论默认情况如何,用户希望创建顺序流(sequential stream)或并行流(parallel stream)。
Java 将顺序流转换为并行流 解决方案
既可以使用 Collection 接口定义的 stream 或 parallelStream 方法,也可以使用 BaseStream 接口定义的 sequential 或 parallel 方法。
Java 将顺序流转换为并行流 具体实例
默认情况下,Java 创建的流都是顺序流。在 BaseStream 接口(Stream 的父接口)中,可以通过 isParallel 方法判断流是否采用并行方式执行。
从例 9-1 可以看到,所有采用标准机制创建的流都是顺序流。
例 9-1 创建顺序流(JUnit 测试的一部分)
如果数据源为集合,可以通过 parallelStream 方法返回一个可能的并行流,如例 9-2 所示。
例 9-2 parallelStream 方法的应用
之所以强调“可能的”,是因为 parallelStream 方法在某些情况下也会返回顺序流,但默认返回的是并行流。Javadoc 指出,仅当创建自定义 spliterator 时才会返回顺序流,不过这种情况相当罕见。4
4毋庸置疑,这是一个有趣的话题。不过受篇幅所限&#