Buen día. La pregunta es cómo eliminar elementos de la colección
de mapas . Estoy intentando resolver otro problema y no puedo avanzar porque no entiendo por qué principio se produce la eliminación de la colección. La idea es eliminar elementos idénticos de una colección; la comparación se realiza por valor. De las conferencias del nivel 8 entendí que "iterador" es algo así como un enlace a nuestra colección. Por lo tanto, creé 2 enlaces de este tipo y, al comparar los elementos de la colección, decidí eliminar los elementos a los que se refiere este enlace (objeto) iterador2. Explica por qué lo estoy haciendo mal. Realmente quiero entender dónde me equivoco. Gracias a todos los que responderán. Otra opción para implementar la eliminación de una colección.
for (Iterator
> iterator1 = map.entrySet().iterator(); iterator1.hasNext();){ HashMap.Entry
pair1 = iterator1.next(); for (Iterator
> iterator2 = map.entrySet().iterator(); iterator2.hasNext();) { HashMap.Entry
pair2 = iterator2.next(); if(pair1.getValue().equals(pair2.getValue())){ map.remove(pair2.getKey()); } } }
Iterator
> iterator1 = map.entrySet().iterator(); while(iterator1.hasNext()){ Map.Entry
pair1 = iterator1.next(); Iterator
> iterator2 = map.entrySet().iterator(); while(iterator2.hasNext()){ Map.Entry
pair2 = iterator2.next(); if (pair1.getValue().equals(pair2.getValue())){ iterator2.remove(); } } }
GO TO FULL VERSION