我想避免併發修改異常。所以試圖製作哈希映射的副本。即使這樣它會拋出併發修改,同時從原始地圖中刪除元素。以下是進行復制的代碼,是否有任何錯誤?處理併發修改異常android
private HashMap<String, ArrayList<String>> makeCopy(HashMap<String, ArrayList<String>> origMap) {
HashMap<String, ArrayList<String>> copy=new HashMap<String, ArrayList<String>>();
Iterator<String> iterator = origMap.keySet().iterator();
while(iterator.hasNext()) {
String key = iterator.next();
copy.put(key, new ArrayList<String>(origMap.get(key)));
}
return copy;
}
或者是否有任何可能性在捕獲try catch塊後處理它?
創建新副本的目的: 實際上,1個Hashmap值副本應發送到另一個具有線程操作的活動(b),而原始副本將在調用其他活動的活動(A)中進行修改(b) ),那就是爲什麼試圖用不同的引用創建哈希映射的副本。
嘗試'私人同步HashMap> makeCopy' –