Estoy teniendo HashMap
llamado testMap
que contiene String, String
.¿Cómo eliminar una clave de HashMap mientras se itera sobre ella?
HashMap<String, String> testMap = new HashMap<String, String>();
cuando se repite el mapa, si es value
partido con la cadena especificada, tengo que quite la llave del mapa.
decir
for(Map.Entry<String, String> entry : testMap.entrySet()) {
if(entry.getValue().equalsIgnoreCase("Sample")) {
testMap.remove(entry.getKey());
}
}
testMap
contiene "Sample"
pero no puedo quitar la llave de HashMap
.
En vez conseguir el error:
"Exception in thread "main" java.util.ConcurrentModificationException
at java.util.HashMap$HashIterator.nextEntry(Unknown Source)
at java.util.HashMap$EntryIterator.next(Unknown Source)
at java.util.HashMap$EntryIterator.next(Unknown Source)"
favor siempre copiar/pegar fragmentos de código, en vez de escribir 'algo así como' el código utilizado. El código original que se muestra no puede lanzar una excepción en tiempo de ejecución, ya que no está disponible. –
Otra opción, aunque discreta, es crear una lista de los objetos que desea eliminar mientras itera. Luego puede crear otro ciclo después de su bucle inicial que itera sobre esa lista y los elimina del hashmap. – eipark