gpt4 book ai didi

java - Stream.sorted().forEach() 是否按预期工作?

转载 作者:搜寻专家 更新时间:2023-11-01 04:07:23 26 4
gpt4 key购买 nike

<分区>

在处理 Java 项目时,我遇到了如下代码:

someMap.keySet().stream().sorted().forEach(/* ... */);

这里的意图显然是根据键的自然顺序为映射中的每个键做一些事情,这似乎是实际发生的事情。但是,我不确定这种行为是否得到保证。 The Javadoc for Stream#forEach说:

The behavior of this operation is explicitly nondeterministic. For parallel stream pipelines, this operation does not guarantee to respect the encounter order of the stream, as doing so would sacrifice the benefit of parallelism. For any given element, the action may be performed at whatever time and in whatever thread the library chooses.

我知道如果代码使用 .parallelStream()而不是 .stream()它不能保证工作,但由于它使用的是顺序流(Javadoc 没有说明任何内容),我不确定。这是否保证始终有效,或者该代码是否需要使用 .forEachOrdered()而不是 .forEach()是吗?

编辑:我相信这个问题不是 forEach vs forEachOrdered in Java 8 Stream 的重复问题,因为这个问题问的是“一般来说,forEach 和 forEachOrdered 之间的区别示例是什么”,而接受的答案基本上是“并行流”。这个问题专门针对顺序流。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com