Java 8 Stream中的forEach vs forEachOrdered

Java 8 Stream中的forEach vs forEachOrdered,第1张

Java 8 Stream中的forEach vs forEachOrdered
Stream.of("AAA","BBB","CCC").parallel().forEach(s->System.out.println("Output:"+s));Stream.of("AAA","BBB","CCC").parallel().forEachOrdered(s->System.out.println("Output:"+s));

第二行将始终输出

Output:AAAOutput:BBBOutput:CCC

而第一个不保证,因为不保留顺序

forEachOrdered
将按照其源指定的顺序处理流的元素,而不管该流是顺序的还是并行的。

引用

forEach
Javadoc:

*** 作的行为明确地是不确定的。对于并行流管道,此 *** 作不能保证尊重流的遇到顺序,因为这样做会牺牲并行性的好处。

forEachOrdered
Javadoc声明时(强调我的意思):

如果流具有已定义的遇到顺序,则按流 的遇到顺序 对此流的每个元素执行 *** 作。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5478041.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存