我將數據存儲在一個HashMap中,我想通過多個線程同時訪問該HashMap來拆分對這些項目所做的工作。只遍歷地圖的一部分
通常情況下(與例如列表)我只是想給每個線程開始的索引,可能容易裂開這樣的工作:
for(int i = startIndex; i < startIndex+batchSize && i < list.size(); i++)
{
Item a = list.get(i);
// do stuff with the Item
}
當然有一個HashMap這並不工作,因爲我無法通過索引訪問它。
是否有一種簡單的方法來遍歷地圖的一部分?我應該爲這種情況使用另一種數據結構嗎?
我閱讀了關於SortedMap的內容,但它有太多的開銷,我不需要(排序項目)。我有很多數據,性能至關重要。
任何提示將不勝感激。
你會如何分割地圖? – skaffman
不知道我得到的問題。 :)我想將地圖分割成與我擁有的線程數(例如8)一樣多的部分。如果可能的話,分配不應該是一個代價高昂的操作。 – magnattic
define *很多數據* ... –