首先断言顺序 == !parallel
Java-8Stream
接口提供了两种collect
方法:
<R> R collect(Supplier<R> supplier,
BiConsumer<R, ? super T> accumulator,
BiConsumer<R, R> combiner);
<R, A> R collect(Collector<? super T, A, R> collector);
我需要一个收集器,它按顺序收集(或可变地减少)元素(用例:多个地图(元素可以是地图,递归地)合并,顺序相关)。不需要组合器(Collectors.of
方法也需要组合器)。有没有更好的方法以某种方式明确地做到这一点?
- 使用定制的
Collector
? - 没有组合器参数的类似
of
方法? - 来自库的现有方法?
或者不一定是顺序收集器,而是具有严格从左到右组合器的并行方法。
事实上,正确的关键字应该是Folding Collector。