在我的應用程序中,我用一個地圖來存儲POJO對象。根據需求,我需要迭代Map的keySet並刪除不需要修改的對象。併發修改異常與地圖和散列表
求索下面的代碼..
public void remove(Map<String,User> removeUser){
Set<String> keySet = removeUser.keySey();
User user = null;
for(String key : keySet){
user = (user) removeUser.get(key);
if(!user.isActive()){
removeUser.remove(key);
}
}
}
在這裏,在上面的代碼中,我得到ConcurrentModificationException的,當我嘗試物除去後獲取用戶對象。
誰能告訴我爲什麼發生?
我沒有使用多線程。所以無法理解,它從哪裏產生ConCurrentModification異常。
即使我嘗試使用HashMap和Hashtable,但問題仍然存在。
謝謝, Gunjan。
感謝您的回答感興趣。很好的解釋。我提到了這個鏈接:http://docs.oracle.com/javase/6/docs/api/java/util/HashMap.html。在這裏他們已經給出了關於地圖結構變化的ConcurrentModificationException的很好的解釋。 –
@GunjanShah ..當然,這是文檔鏈接。並且對這個東西有一個很好和簡潔的解釋。請繼續參考文檔以瞭解Java中的各種方法。 :) –
啊!我從內存中輸入我的iPhone上。我確定入口已經刪除()!廢話 – Bohemian