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
主要的好處是既不是性能(認爲它表現良好)也不是語法的簡單性(儘管這也可能是一個好處)。好處是_表示作爲數據集屬性的更高抽象級別的操作,而不是一個在每個單獨元素上進行深入分析並計算一些臨時結果的必要過程。 –