假設我有一個包含數千個獨立對象的數組。現在我想傳遞它們中的每一個並執行相同的操作,例如,更改特定字段的值。使用forEach()在多個線程或forEach()和lambdas中進行集合迭代
乍一看,有在爪哇8多種方法來這樣的任務,例如:
forEach();
與內部lambda表達式:itemsArr.forEach(項目 - > item.setValue(「test」));
forEach();
用迭代器。- 將數組分成批號/塊,並在單獨的線程中處理每批。例如:定義2個線程,從#0到999的元素將在線程«A»中執行,其餘部分在線程«B»中執行。
最終結果應該是:100%的數組元素應該被關心。
這種任務的最佳方法是什麼?
更新: 有一個類似question而是另一個方面的會談,我沒有興趣在不同類型的循環性能比較(while
,for
,forEach
),但在威脅的性能比較VS 。lambdas在數組遍歷的任務中?
如果性能不是什麼大不了的事,那麼你能解釋一下「優先」是什麼意思嗎? – user3707125
讓一個數組包含一百萬個對象首先是一個壞主意。這取決於對象的類型,但我相信你可以找到它的替代品。然後,如果您需要修改每個單獨的值,則除了遍歷每個值之外,別無選擇。如何遍歷它們,然後取決於你的數據結構 – Gaktan
@Gaktan,擁有*數百萬個對象*我真的誇大了事實上有成千上萬的對象。我更新了這個問題,以便更清楚地說明問題。 –