从java 8开始迭代通过列表我可以使用两者:
List list = new ArrayList();
1. list.forEach(...)
2. list.stream().forEach(...)
使用第二种情况有什么好处吗?要将列表转换为流吗?
答案 0 :(得分:5)
除非您有并行流,否则使用第二种情况没有任何优势。有一个缺点,即Stream.forEach()
不保证尊重遭遇顺序。更准确(但仍然不必要)的等价物是Stream.forEachOrdered()
。
答案 1 :(得分:2)
不,理论上,第二个选项比第一个选项更差 - 您支付实例化/垃圾收集的成本并调用Stream
实例,并且不会获得任何好处作为回报。
此外,理论上Stream.forEach()
的迭代顺序不具有确定性。