..........
好吧,让我告诉你我犯了一些错误:我所指的foreach()不是集合操作,而是来自Iteable的方法。我已经改变了我的问题及其内容的标题。
我感兴趣的是知道默认情况下是否实现了聚合操作,以及我可以在哪里找到该实现。
答案 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
实现。