iterando y eliminando de un mapa [duplicado]
Esta pregunta ya tiene una respuesta aquí:
Interando a través de una Colección, evitando ConcurrentModificationException al eliminar objetos en un bucle 23 respuestasEstaba haciendo
for (Object key : map.keySet())
if (something)
map.remove(key);
que lanzó una ConcurrentModificationException, así que la cambié a:
for (Object key : new ArrayList<Object>(map.keySet()))
if (something)
map.remove(key);
esto, y cualquier otro procedimiento que modifique el mapa están en bloques sincronizados.
¿Hay una solución mejor?
si a nadie se le ocurre una solución mejor, primero para decir que no recibe la marca;)