Bonjour à tous,
En utilisant un for et un remove simultanément, j'ai rencontré une ConcurrentModificationException sur cette construction:
... ce qui est une erreur de débutant classique semble-t-il. La construction suivante est-elle une manière correcte de la contourner ? Je saisis mal le fait que la méthode() remove s'applique bien à l'élément qui avait été sélectionné par l'appel à next().
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 HashMap<String,String> h = new HashMap<String,String>(); h.put("mot1","foo"); h.put("mot2","bar"); h.put("mot3","foobar"); for (String key: h.keySet()) { if (h.get(key).equals("bar")) h.remove(key); }
Cordialement,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Iterator<String> it = h.keySet().iterator(); while (it.hasNext()) { if (h.get(it.next()).equals("bar")) it.remove(); }
G.
Partager