据我所知,在并行流中,像
不幸的是,我在Java 8方面的实际经验还相当有限,因此我真的希望有人能解释一下这个架构决策的原因,最好能够用一些简单的示例/用例向我展示如果没有这样做可能会出现什么问题。
仅仅想要明确一下,我不是在问这个:forEach vs forEachOrdered in Java 8 Stream。我完全了解这些方法的工作方式和它们之间的区别。我询问的是 Oracle 做出这个架构决策的实际原因。
findFirst
、skip
、limit
等方法只要流有序(默认情况下是有序的),无论并行或串行,它们的行为都保持不变。因此我想知道为什么 forEach
方法会有所不同。我思考了一下,但我就是无法理解为什么需要定义 forEachOrdered
方法,当可以让 forEach
默认有序,然后在流实例上调用 unordered
方法,就没有必要再定义新的方法了。不幸的是,我在Java 8方面的实际经验还相当有限,因此我真的希望有人能解释一下这个架构决策的原因,最好能够用一些简单的示例/用例向我展示如果没有这样做可能会出现什么问题。
仅仅想要明确一下,我不是在问这个:forEach vs forEachOrdered in Java 8 Stream。我完全了解这些方法的工作方式和它们之间的区别。我询问的是 Oracle 做出这个架构决策的实际原因。
forEach
按照特定的顺序执行操作呢?这并不是“for each…”这个术语所暗示的。 - HolgerforEach
通常是无序的,它不是可以在某种程度上更改的默认值,即使顺序流今天可能无法利用此属性,但它被定义为无序操作。 - Holger