【发布时间】:2017-12-14 07:38:40
【问题描述】:
我正在研究 java 8 并行流,并且希望以某种顺序打印并行流中的元素(例如插入顺序、反向顺序或顺序)。
为此我尝试了以下代码:
System.out.println("With forEachOrdered:");
listOfIntegers
.parallelStream()
.forEachOrdered(e -> System.out.print(e + " "));
System.out.println("");
System.out.println("With Sequential:");
listOfIntegers.parallelStream()
.sequential()
.forEach(e -> System.out.print(e + " "));
对于这两个,我得到了相同的输出如下:
With forEachOrdered:
1 2 3 4 5 6 7 8
With Sequential:
1 2 3 4 5 6 7 8
从 api 文档中,我可以看到:
forEachOrdered -> 这是一个终端操作。
和
sequential -> 这是一个中间操作。
所以我的问题是哪个更好用? 在哪些情况下,应该优先选择一个?
【问题讨论】:
标签: java parallel-processing java-8 java-stream