我正在实现一个Spliterator
,它通过让trySplit()
返回null
来显式限制并行化。实现estimateSize()
会对此分离器产生的流提供任何性能改进吗?还是估计的大小仅对并行有用?
编辑:为了明确起见,我专门询问估计的大小。换句话说,我的分隔符没有SIZED
特性。
最佳答案
查看有关分隔符特性的调用层次结构可以发现它至少与stream.toArray()
性能相关
另外,内部流实现中有一个等效标志似乎用于排序:
因此,除了并行流操作外,大小估计似乎还用于这两个操作。
我并没有要求穷举,因此仅以这些为例。
没有SIZED特性,我只能找到与并行执行流管道有关的对estimateSize()
的调用。
当然,这可能会在将来发生变化,或者与标准JDK可能采取不同的行为相比,另一种Stream实现可能会发生变化。