iterando e removendo de um mapa [duplicado]
Esta pergunta já tem uma resposta aqui:
Iterando através de uma coleção, evitando ConcurrentModificationException ao remover objetos em um loop 3 respostasEu estava fazendo
for (Object key : map.keySet())
if (something)
map.remove(key);
que lançou uma ConcurrentModificationException, então eu mudei para:
for (Object key : new ArrayList<Object>(map.keySet()))
if (something)
map.remove(key);
e todos os outros procedimentos que modificam o mapa estão em blocos sincronizado
Existe uma solução melhor
se ninguém encontrar uma solução melhor, primeiro a dizer que não recebe o sinal;)