在Stream界面中:
中间操作可分为有状态和无状态两种。它们影响并行Stream的结果。
只有两个终端操作是不确定性方法:findAny()和forEach(Consumer)。它们影响并行Stream的结果。
如果中间无状态操作执行惰性操作,则可能会产生副作用。这会影响并行Stream的结果。
中间操作可归类为:
有状态
无状态
这是我的两个问题:
无状态中间方法
有状态中间方法
这些规则正确吗?
非常感谢!
A。
答案 0 :(得分:2)
我想条件1和2都成立。我想添加一些操作。
reduce
也是有状态操作的一部分。
forEach
是无状态操作的一部分。
请注意,无状态操作会产生副作用,因此会变成有状态。
第三条陈述并不完全正确。如果流是有序的,并且我们并行处理它,则与无状态操作一起使用时,流将保持有序。这就是为什么我们需要在流上调用方法unordered()
使其无序并提高效率。