Я изучаю hashmap, я могу знать, что когда карта повторяется. hashmap внутренне отслеживает размер hashmap и, если есть какие-либо изменения в размере, hashmap генерирует исключение ConcurrentModificationException.
Идем вперед с той же точки зрения.
Посмотрите на этот кусок кода
HashMap<String, String> myMap = new HashMap<>();
myMap.put("1", "1");
myMap.put("2", "2");
myMap.put("3", "3");
myMap.put("4", "4");
System.out.println("HashMap before iterator size before : " +myMap.size());
try {
for(String key : myMap.keySet()){
myMap.remove("3");
myMap.remove("4");
myMap.put("5", "new8");
myMap.put("6", "new9");
}
} catch(ConcurrentModificationException exception) {
System.out.println("HashMap before iterator size after : " +myMap.size());
}
System.out.println("HashMap before iterator fourth : "+myMap);
Выход такой же:
HashMap before iterator size before 4
HashMap before iterator size after 4
HashMap before iterator fourth : {1=1, 2=2, 5=new8, 6=new9}
Почему в этом случае выдает ошибку hashmap?