J'essaie de comprendre comment fonctionne ConcurrentHashMap. J'ai trouvé un exemple, mais je n'arrive pas à le comprendre. Voici son code :
Map<String, Object> myData = new HashMap<String, Object>();
myData.put("A", 1);
myData.put("B", 2);
for (String key : myData.keySet()) {
myData.remove(key);
}
Cela entraînera une exception ConcurrentModificationException
au moment de l'exécution.
Cependant, ce code utilisant ConcurrentHashMap
fonctionnera correctement :
Map<String, Object> myData = new ConcurrentHashMap<String, Object>();
myData.put("A", 1);
myData.put("B", 2);
for (String key : myData.keySet()) }
myData.remove(key);
}
Quelqu'un peut-il m'expliquer pourquoi ConcurrentHashMap permet de supprimer des clés alors que le HashMap lève une exception ? Merci