/ / Excluir elementos do Hashmap enquanto itera sobre ele - java, hashmap, modificação simultânea

Excluir elementos do Hashmap enquanto iterar sobre ele - java, hashmap, simultâneomodificação

Aqui está o meu código. Eu tenho uma lista de elementos visitados. Então, eu quero excluir esses elementos visitados do hashmap e abaixo é o código. Isso me dá exceção de modificação simultânea.

private static void removeVisitedNodes(ArrayList<String> arrayList) {
// TODO Auto-generated method stub

Iterator<String> it = arrayList.iterator();
String temp;
while(it.hasNext())
{
temp = it.next();
System.out.println("temp is " + temp);
Iterator<Entry<String, ArrayList<String>>> iter = neighbours_reachability_map.entrySet().iterator();

// iterate through the hashmap to remove elements
while (iter.hasNext()) {
Entry<String, ArrayList<String>> entry = iter.next();
if(entry.getValue().contains(temp)){
//System.out.println("Contains it"  + entry.getValue().toString());
entry.getValue().remove(temp);
}
}

}
}

Eu verifiquei algumas outras perguntas semelhantes, mas elas não ajudaram muito. Existe uma maneira mais clara de fazer isso sem causar uma exceção? Agradeço antecipadamente por sua ajuda.

Respostas:

2 para resposta № 1

Para remover um elemento no meio da iteração, use Iterator.remove().


1 para resposta № 2

você pode colocar os elementos que deseja excluir em outro objeto de coleção e, depois de concluir a iteração, excluir esses elementos