在我的应用程序中,我使用 Map 来存储 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,但问题仍然存在。