聚合操作和方法之间有什么区别?

时间:2015-06-13 22:46:23

标签: java-8 default-implementation

..........

好吧,让我告诉你我犯了一些错误:我所指的foreach()不是集合操作,而是来自Iteable的方法。我已经改变了我的问题及其内容的标题。

我感兴趣的是知道默认情况下是否实现了聚合操作,以及我可以在哪里找到该实现。

1 个答案:

答案 0 :(得分:2)

如果您想深入了解JDK源代码,您可以随时将它们here下载为@jbkm建议。如果安装了Oracle JDK,则安装文件夹中应该包含src.zip文件,其中包含所有公共源。或者,您可以在线查看OpenJDK来源,例如GrepCode。如您所见,forEach Iterable的实现非常简单:

default void forEach(Consumer<? super T> action) {
    Objects.requireNonNull(action);
    for (T t : this) {
        action.accept(t);
    }
}

如果你在Stream API中询问forEach的实现,那就更复杂了,因为它应该评估所有以前的流水线步骤并为并行流并行执行操作。您可以开始调查ReferencePipeline类,这是OpenJDK中的Stream实现。