…………
好吧,让我告诉你我犯了一些错误:我所指的 foreach() 不是聚合操作,而是来自 Iteable 的方法。我更改了问题的标题及其内容。
我的兴趣是知道默认情况下是否实现了聚合操作以及在哪里可以找到该实现。
…………
好吧,让我告诉你我犯了一些错误:我所指的 foreach() 不是聚合操作,而是来自 Iteable 的方法。我更改了问题的标题及其内容。
我的兴趣是知道默认情况下是否实现了聚合操作以及在哪里可以找到该实现。
如果您想深入了解 JDK 源代码,您可以随时按照@jbkm 的建议在此处下载它们。如果您安装了 Oracle JDK,src.zip
安装文件夹中应该有包含所有公共源的文件。或者,您可以在线查看 OpenJDK 源代码,例如在GrepCode上。如您所见,forEach
for的实现Iterable
非常简单:
default void forEach(Consumer<? super T> action) {
Objects.requireNonNull(action);
for (T t : this) {
action.accept(t);
}
}
如果您要询问forEach
Stream API 中的实现,那就更棘手了,因为它应该评估所有先前的管道步骤并为并行流并行执行操作。您可以开始调查检查作为OpenJDK 实现的ReferencePipeline
类。Stream