0
我在嘗試從HashMap中刪除條目時遇到了ConcurrentModificationException,我無法弄清楚原因。我是而不是遍歷它,我只是檢查它是否包含給定的鍵,並刪除映射到它的值,如果它。我已經閱讀過這個問題,但他們都是試圖修改HashMap而不使用迭代器的迭代器,而這並不是我的情況。HashMap上的ConcurrentModificationException(不會迭代它)
這是(任務serverTask:serverTasksNotInDB)代碼
serverTasksNotInDB = CompareLists.serverTasksNotInDB(localTasks, serverTasks);
if (serverTasksNotInDB != null && !serverTasksNotInDB.isEmpty()) {
for (Task serverTask : serverTasksNotInDB) {
String id = serverTask.getId();
mPresenter.addTaskFirstTimeFromServer(serverTask, currentListId);
if (serverTasks != null) {
serverTasks.remove(serverTask);
boolean containsKey = serverTasksMap.containsKey(id);
if (containsKey) {
//TODO Fix concurrency modification exception here (down)
serverTasksMap.remove(id);
}
}
}
}
嘗試另一種方式 –
對不起,請您詳細解釋一下嗎? –
https://stackoverflow.com/questions/85190/how-does-the-java-for-each-loop-work –