Buona giornata. La domanda è come rimuovere elementi dalla raccolta
Map . Sto cercando di risolvere un altro problema e non riesco ad andare avanti, perché non capisco su quale principio avviene la cancellazione dalla collezione. L'idea è quella di rimuovere elementi identici da una collezione, il confronto viene effettuato in base al valore. Dalle lezioni del livello 8 ho capito che "iteratore" è qualcosa come un collegamento alla nostra raccolta. Pertanto, ho creato 2 collegamenti di questo tipo e, confrontando gli elementi nella raccolta, ho deciso di eliminare gli elementi a cui si riferisce questo collegamento (oggetto) iterator2. Spiega perché sto sbagliando. Voglio davvero capire dove sbaglio. Grazie a tutti coloro che risponderanno. Un'altra opzione per implementare la rimozione da una raccolta
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