Come utilizzare il metodo Iterator per rimuovere un elemento da una raccolta in Java?

Come Utilizzare Il Metodo Iterator Per Rimuovere Un Elemento Da Una Raccolta In Java



IL ' iteratore Il metodo 'offre un modo semplice e sicuro per rimuovere o eliminare elementi di dati specifici da una raccolta durante l'iterazione su di essa. Previene il verificarsi di ' ConcurrentModificationException ” che si verifica quando il ciclo for migliorato tenta di modificare la raccolta. Memorizza la traccia della posizione corrente e offre ai programmatori la possibilità di andare avanti e rimuovere gli elementi sottostanti secondo necessità.

Questo blog illustra il processo per rimuovere un elemento da una raccolta utilizzando il metodo iteratore.







Come utilizzare il metodo Iterator per rimuovere un elemento da una raccolta in Java?

Il metodo iteratore è unidirezionale e può essere utilizzato con vari tipi di raccolta, tra cui ' ArrayList”, “LinkedList ”, ecc. Offre un modo uniforme per rimuovere elementi da qualsiasi raccolta che implementa il “ Iterabile ” interfaccia.



Visitiamo alcuni esempi per comprendere meglio il metodo iteratore:



Esempio 1: rimozione di elementi specifici dalla raccolta utilizzando il metodo iteratore

Il metodo iteratore può essere utilizzato con ' Se istruzioni o loop per selezionare gli elementi specificati. E poi il “ rimuovere ()' viene utilizzato per eseguire l'operazione di eliminazione come mostrato di seguito:





importare java.util.* ;
classe IterEsame
{
pubblico statico vuoto principale ( Corda [ ] arg )
{
Lista di array < Numero intero > demoArrList = nuovo Lista di array < Numero intero > ( ) ;
per ( int io = 0 ; io <= venti ; io = io + 2 )
{
demoArrList. aggiungere ( io ) ;
}
Iteratore < Numero intero > itr = demoArrList. iteratore ( ) ;
Sistema . fuori . println ( 'ElencoArray fornito:' ) ;

per ( int io = 0 ; io < demoArrList. misurare ( ) ; io ++ )
{
Sistema . fuori . stampa ( demoArrList. Ottenere ( io ) + ' ' ) ;
}
Mentre ( itr. hasNext ( ) )
{
Se ( itr. Prossimo ( ) % 3 == 0 )
itr. rimuovere ( ) ;
}
Sistema . fuori . println ( ' \N Dopo aver rimosso gli elementi dispari di ArrayList' ) ;
per ( int io = 0 ; io < demoArrList. misurare ( ) ; io ++ )
{
Sistema . fuori . stampa ( demoArrList. Ottenere ( io ) + ' ' ) ;
}
}
}

Descrizione del codice sopra:

  • Innanzitutto, viene creato ArrayList e quindi un multiplo di ' 2 ” è inserito fino all'intervallo di “ venti ” con l'aiuto del “ per ' ciclo continuo.
  • Successivamente, dichiara un ' iteratore ” oggetto metodo per visualizzare gli elementi di ArrayList sulla console.
  • Quindi, utilizza il ' hasNext ()' con l'oggetto iteratore per attraversare tutti gli elementi ArrayList residenti.
  • Dopodiché il “ Se L'istruzione ” viene utilizzata per controllare gli elementi che sono completamente divisibili per “ 3 ' dentro.
  • Poi il ' rimuovere ()' viene utilizzato per eliminare gli elementi che vengono restituiti dal metodo ' Se ' dichiarazione.
  • Alla fine, l'ArrayList aggiornato è stato visualizzato utilizzando il ' per ' ciclo continuo.

Dopo la compilazione:



L'output visualizza gli elementi specifici, che sono divisibili per tre e rimossi dall'ArrayList utilizzando un metodo iteratore.

Esempio 2: rimozione di tutti gli elementi dalla raccolta

Per rimuovere tutti gli elementi residenti della raccolta, è possibile utilizzare il metodo iteratore insieme al suo ' rimuovere ()” come mostrato di seguito:

importare java.util.* ;
classe Vuoto
{
pubblico statico vuoto principale ( Corda arg [ ] )
{
Vettore < Numero intero > testVector = nuovo Vettore < Numero intero > ( ) ;
testVector. aggiungere ( 18 ) ;
testVector. aggiungere ( ventuno ) ;
testVector. aggiungere ( 25 ) ;
testVector. aggiungere ( 27 ) ;
testVector. aggiungere ( 30 ) ;

Iteratore < Numero intero > attraversare = testVector. iteratore ( ) ;
Sistema . fuori . stampa ( 'Elementi esistenti:' ) ;
Mentre ( attraversare. hasNext ( ) )
Sistema . fuori . stampa ( attraversare. Prossimo ( ) + ' ' ) ;
Sistema . fuori . stampa ( ' \N Il testVector contiene ' + testVector. misurare ( ) + ' elementi ' ) ;
attraversare = testVector. iteratore ( ) ;
Mentre ( attraversare. hasNext ( ) )
{
Sistema . fuori . stampa ( ' \N rimuovendo ' + attraversare. Prossimo ( ) ) ;
attraversare. rimuovere ( ) ;
}
Sistema . fuori . println ( ' \N Ora, il testVector contiene ' + testVector. misurare ( ) + ' elementi' ) ;
}
}

Descrizione del codice:

  • Innanzitutto, dichiara e inizializza ' Vettore ” con valori di tipo intero fittizio utilizzando il “ aggiungere ()' metodo.
  • Successivamente, crea un metodo iteratore che utilizza il metodo ' hasNext ()' E ' Prossimo ()”. Visualizza gli elementi di dati residenti e le dimensioni corrispondenti.
  • Quindi, utilizza il ' hasNext ()' lungo l'oggetto iteratore all'interno del ' Mentre ' ciclo continuo.
  • Successivamente, utilizzare il ' Prossimo ()' per selezionare l'elemento successivo, quindi il file rimuovere () metodo viene chiamato per eliminare ogni elemento ricevente.
  • In questo modo, tutti gli elementi del Vector vengono rimossi e la dimensione del Vector viene visualizzata sulla console.

Descrizione del codice:

Il codice precedente conferma che tutti gli elementi della raccolta sono stati rimossi.

Esempio 3: rimozione di elementi mediante ListIterator

ListIterator funziona in modo simile al metodo iteratore. ListIterator esegue l'attraversamento su entrambi i lati nelle direzioni avanti e indietro. Per rimuovere elementi specifici dalla raccolta utilizzando ListIterator in Java, visitare il codice seguente:

importare java.util.ArrayList ;
importare java.util.ListIterator ;
pubblico classe ListIteratorDemo {

//Inizializzazione del metodo main()
pubblico statico vuoto principale ( Corda [ ] arg )
{ //Dichiarazione e inizializzazione di ArrayList
Lista di array < Corda > crescere = nuovo Lista di array < Corda > ( ) ;
crescere aggiungere ( 'Felpa' ) ;
crescere aggiungere ( 'Polo' ) ;
crescere aggiungere ( 'Henley' ) ;
crescere aggiungere ( 'Sudore' ) ;
crescere aggiungere ( 'Casuale' ) ;
crescere aggiungere ( 'Lusso' ) ;
crescere aggiungere ( 'Dryfit' ) ;


ListIterator < Corda > litro = crescere listIterator ( ) ;
Sistema . fuori . println ( 'Elenco prima della rimozione' ) ;
per ( int io = 0 ; io < crescere misurare ( ) ; io ++ )
Sistema . fuori . stampa ( crescere Ottenere ( io ) + ' ' ) ;
Mentre ( litro. hasNext ( ) ) {
Se ( litro. Prossimo ( ) . equivale ( 'Sudore' ) ) {
litro. rimuovere ( ) ;
}
}
Sistema . fuori . println ( ' \N Elenco dopo la rimozione' ) ;
per ( int io = 0 ; io < crescere misurare ( ) ; io ++ )
Sistema . fuori . stampa ( crescere Ottenere ( io ) + ' ' ) ;
}
}

Descrizione del codice sopra:

  • Innanzitutto, dichiara e inizializza ArrayList con i valori di tipo stringa fittizi e visualizza tutti gli elementi sulla console utilizzando ' per ' ciclo continuo.
  • Quindi, crea un oggetto che chiami ' hasNext ()' metodo all'interno del ' Mentre ' ciclo continuo. Attraversa tutti gli elementi residenti.
  • Poi il ' Se Viene utilizzata l'istruzione 'che controlla ogni elemento con un testo specifico, quando quell'elemento corrisponde a' rimuovere ()” viene chiamato il metodo. Elimina l'elemento specifico dal ' aArte ” chiamato ArrayList.
  • Alla fine, visualizza l'ArrayList modificato sulla console.

Dopo la compilazione:

Lo snapshot conferma che l'elemento dati specificato è stato rimosso dalla raccolta utilizzando ListIterator.

Conclusione

Per rimuovere l'elemento da una raccolta, il ' rimuovere ()” viene utilizzato il metodo dell'iteratore. L'iteratore attraversa ArrayList per trovare i dati di destinazione. Una volta trovato il “ rimuovere ()” viene utilizzato per rimuovere quello specifico elemento di dati. Offre una tecnica standardizzata in diverse raccolte e previene problemi e il verificarsi di diverse eccezioni come ' ConcurrentModificationException ”. Insieme ad esso, il “ ListIterator ” può anche essere utile.