小编pop*_*rny的帖子

为什么Java 8'Collector'类以这种方式设计?

我们知道Java 8引入了一个新的Stream API,并且java.util.stream.Collector是定义如何聚合/收集数据流的接口.

但是,Collector接口的设计如下:

public interface Collector<T, A, R> {
    Supplier<A> supplier();
    BiConsumer<A, T> accumulator();
    BinaryOperator<A> combiner();
    Function<A, R> finisher();
}
Run Code Online (Sandbox Code Playgroud)

为什么它的设计不符合以下规定?

public interface Collector<T, A, R> {
    A supply();
    void accumulate(A accumulator, T value);
    A combine(A left, A right);
    R finish(A accumulator);
}
Run Code Online (Sandbox Code Playgroud)

后者更容易实现.将它设计为前者的考虑是什么?

java java-8 java-stream collectors

34
推荐指数
2
解决办法
2298
查看次数

标签 统计

collectors ×1

java ×1

java-8 ×1

java-stream ×1