powtarzanie i usuwanie z mapy [duplikat]
To pytanie ma już odpowiedź tutaj:
Iterowanie przez kolekcję, unikając ConcurrentModificationException podczas usuwania obiektów w pętli 23 odpowiedziRobiłem
for (Object key : map.keySet())
if (something)
map.remove(key);
, który zgłosił wyjątek ConcurrentModificationException, więc zmieniłem go na:
for (Object key : new ArrayList<Object>(map.keySet()))
if (something)
map.remove(key);
to i wszelkie inne procedury modyfikujące mapę są w zsynchronizowanych blokach.
czy jest lepsze rozwiązanie?
jeśli nikt nie wymyśli lepszego rozwiązania, najpierw powiedz, że nie dostanie tyka;)