java 8 - 聚合操作和方法之间有什么区别



..........

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

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

如果你想

深入研究JDK源代码,你可以按照@jbkm的建议随时在这里下载它们。如果您安装了Oracle JDK,则安装文件夹中应该src.zip包含所有公共源代码的文件。或者,您可以在线查看OpenJDK源代码,例如在GrepCode上。如您所见,IterableforEach实现非常简单:

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

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

相关内容

  • 没有找到相关文章

最新更新