Я пытаюсь понять, как работает ConcurrentHashMap.Я нашел пример, но я не могу его понять.Вот его код:
Map<String, Object> myData = new HashMap<String, Object>();
myData.put("A", 1);
myData.put("B", 2);
for (String key : myData.keySet()) {
myData.remove(key);
}
Это вызовет исключение ConcurrentModificationException
во время выполнения.
Однако этот код, использующий ConcurrentHashMap
, будет работать правильно:
Map<String, Object> myData = new ConcurrentHashMap<String, Object>();
myData.put("A", 1);
myData.put("B", 2);
for (String key : myData.keySet()) }
myData.remove(key);
}
Может кто-нибудь объяснить мне, почему ConcurrentHashMap позволяет удалять ключи, в то время как HashMap выдает исключение?Спасибо