私のアプリケーションでは、Map を使用して POJO オブジェクトを格納しました。要件に従って、マップのキーセットを反復処理し、変更を必要としないオブジェクトを削除する必要があります。
以下のコードを検討してください。
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 Exception が生成された場所から理解できません。
HashMap と Hashtable を試してみましたが、問題はまだあります。