- 怎样
IDENTITY_FINISH
才能加快采集器的工作?据我了解,这将节省对堆栈的几次调用(在这种情况下finisher
它返回相同的supplier
),并且考虑到收集器可以根据流的大小工作多长时间,这根本不算什么。 - 它
CONCURRENT
可以用来做什么,因为combiner
无论如何在使用时都会调用它parallelStream()
,而不管收集器是否是使用参数创建的CONCURRENT
。 - 它如何
CONCURRENT
影响正常的流()? UNORDERED
如果在任何情况下使用parallelStream()
所有内容时都不会对其进行排序,并且在使用 stream() 时,所有内容都将按照传递时的相同顺序进行处理,为什么需要它。还是我误会了?
IDENTITY_FINISH
不会以任何方式加速收集器,它只是表明收集器不需要最终转换(整理器)。CONCURRENT
(根据描述)这是累加器的一个特性,而不是combiner,即表示可以从不同的线程(Thread)调用累加器。Collector.Characteristics
- 这些是收集器的特征,而不是流(Stream;您必须使用这种英语来避免混淆,因为“流”更可能与 Thread 相关联)。那。也可以并行收集常规流,见下文。Collectors.groupingByConcurrent()
Collectors.toConcurrentMap()
UNORDERED
- 表示收集器不尊重元素的顺序,例如,它将它们收集在一个 Set 中。该特性的存在是允许并行组装的要求之一。见收藏家