每个和每个流的使用优点和缺点

时间:2018-02-14 21:14:50

标签: java java-8 java-stream

从java 8开始迭代通过列表我可以使用两者:

List list = new ArrayList();
1. list.forEach(...)
2. list.stream().forEach(...)

使用第二种情况有什么好处吗?要将列表转换为流吗?

2 个答案:

答案 0 :(得分:5)

除非您有并行流,否则使用第二种情况没有任何优势。有一个缺点,即Stream.forEach()不保证尊重遭遇顺序。更准确(但仍然不必要)的等价物是Stream.forEachOrdered()

答案 1 :(得分:2)

不,理论上,第二个选项比第一个选项更差 - 您支付实例化/垃圾收集的成本并调用Stream实例,并且不会获得任何好处作为回报。

此外,理论上Stream.forEach()的迭代顺序不具有确定性。