1
我最近了解到,为了遍历集合,集合操作比for-each构造或迭代器更好,但我没弄明白。 获取流和执行集合操作有什么好处。 Syntex有任何性能问题或简单吗?要遍历集合,集合操作更好选择如何?
我最近了解到,为了遍历集合,集合操作比for-each构造或迭代器更好,但我没弄明白。 获取流和执行集合操作有什么好处。 Syntex有任何性能问题或简单吗?要遍历集合,集合操作更好选择如何?
集合操作和迭代器(或for-each循环)之间的主要区别之一是第一个使用内部迭代。如Oracle的文档说:
“外部迭代只能迭代一个集合中的元素依次 内部迭代不具有这种限制可以 更方便地利用并行计算的。”。参考:https://docs.oracle.com/javase/tutorial/collections/streams/index.html#differences
我添加了Java-8标签,因为你似乎在问流。 –
尝试使用plain for-each来做一些多线程的聚合操作,你会看到它有多难。您需要同步很多东西等,因为列表不是线程安全的。您可以通过使用并行流使用流实现同样的事情,它更容易和安全。节省很多时间。此外,流让你专注于“什么”的问题,而不是如何,因为他们采取'如何'的部分。迭代在开箱即用的情况下在内部完成。 – george
主要的好处是既不是性能(认为它表现良好)也不是语法的简单性(尽管这也可能是一个好处)。好处是_表示作为数据集属性的更高抽象级别的操作,而不是一个在每个单独元素上进行深入分析并计算一些临时结果的必要过程。 –