Kako koristiti metodu iteratora za uklanjanje elementa iz zbirke u Javi?

Kako Koristiti Metodu Iteratora Za Uklanjanje Elementa Iz Zbirke U Javi



' iterator ” metoda nudi siguran i jednostavan način za uklanjanje ili brisanje određenih podatkovnih elemenata iz zbirke tijekom iteracije po njoj. Sprječava pojavu “ ConcurrentModificationException ” koja se pojavljuje kada poboljšana for petlja pokuša modificirati kolekciju. Pohranjuje trag trenutne pozicije i nudi programerima priliku da krenu naprijed i po potrebi uklone temeljne elemente.

Ovaj blog demonstrira postupak uklanjanja elementa iz zbirke korištenjem metode iteratora.







Kako koristiti metodu iteratora za uklanjanje elementa iz zbirke u Javi?

Metoda iteratora je jednosmjerna i može se koristiti s različitim tipovima kolekcija, uključujući ' ArrayList”, “LinkedList ', itd. Nudi jednoobrazan način uklanjanja elemenata iz bilo koje zbirke koja implementira ' Iterable ' sučelje.



Posjetimo neke primjere kako bismo bolje razumjeli metodu iteratora:



Primjer 1: Uklanjanje određenih elemenata iz zbirke pomoću metode iteratora

Metoda iteratora može se koristiti s ' ako ” naredbe ili petlje za odabir navedenih elemenata. A zatim ' ukloniti ()” metoda se koristi za izvođenje operacije brisanja kao što je prikazano u nastavku:





uvoz java.util.* ;
razreda IterExam
{
javnost statički poništiti glavni ( Niz [ ] args )
{
ArrayList < Cijeli broj > demoArrList = novi ArrayList < Cijeli broj > ( ) ;
za ( int ja = 0 ; ja <= dvadeset ; ja = ja + 2 )
{
demoArrList. dodati ( ja ) ;
}
Iterator < Cijeli broj > itr = demoArrList. iterator ( ) ;
Sustav . van . println ( 'Dostavljen ArrayList:' ) ;

za ( int ja = 0 ; ja < demoArrList. veličina ( ) ; ja ++ )
{
Sustav . van . ispisati ( demoArrList. dobiti ( ja ) + ' ' ) ;
}
dok ( itr. hasNext ( ) )
{
ako ( itr. Sljedeći ( ) % 3 == 0 )
itr. ukloniti ( ) ;
}
Sustav . van . println ( ' \n Nakon uklanjanja neparnih elemenata ArrayList' ) ;
za ( int ja = 0 ; ja < demoArrList. veličina ( ) ; ja ++ )
{
Sustav . van . ispisati ( demoArrList. dobiti ( ja ) + ' ' ) ;
}
}
}

Opis gornjeg koda:

  • Prvo se kreira ArrayList, a zatim višekratnik ' 2 ” umeće se do raspona od „ dvadeset ' uz pomoć ' za ' petlja.
  • Zatim, deklarirajte ' iterator ” objekt metode za prikaz elemenata ArrayList-a na konzoli.
  • Zatim upotrijebite ' hasNext ()” s objektom iteratora za prolazak kroz sve postojeće elemente ArrayList.
  • Nakon toga, ' ako ” naredba se koristi za provjeru elemenata koji su potpuno djeljivi sa “ 3 ' unutar.
  • Onda ' ukloniti ()' metoda se koristi za brisanje elemenata koje vraća ' ako ” izjava.
  • Na kraju, ažurirani ArrayList je prikazan pomoću ' za ' petlja.

Nakon kompilacije:



Izlaz prikazuje specifične elemente, koji su djeljivi s tri i uklonjeni iz ArrayList pomoću metode iteratora.

Primjer 2: Uklanjanje svih elemenata iz zbirke

Za uklanjanje svih stalnih elemenata zbirke, metoda iteratora može se koristiti zajedno sa svojim ' ukloniti ()” metoda kao što je prikazano u nastavku:

uvoz java.util.* ;
razreda Praznina
{
javnost statički poništiti glavni ( Niz arg [ ] )
{
Vektor < Cijeli broj > testVektor = novi Vektor < Cijeli broj > ( ) ;
testVektor. dodati ( 18 ) ;
testVektor. dodati ( dvadeset i jedan ) ;
testVektor. dodati ( 25 ) ;
testVektor. dodati ( 27 ) ;
testVektor. dodati ( 30 ) ;

Iterator < Cijeli broj > prijeći = testVektor. iterator ( ) ;
Sustav . van . ispisati ( 'Postojeći elementi:' ) ;
dok ( prijeći. hasNext ( ) )
Sustav . van . ispisati ( prijeći. Sljedeći ( ) + ' ' ) ;
Sustav . van . ispisati ( ' \n TestVektor sadrži ' + testVektor. veličina ( ) + ' elementi ' ) ;
prijeći = testVektor. iterator ( ) ;
dok ( prijeći. hasNext ( ) )
{
Sustav . van . ispisati ( ' \n uklanjanje ' + prijeći. Sljedeći ( ) ) ;
prijeći. ukloniti ( ) ;
}
Sustav . van . println ( ' \n Sada, testVektor sadrži ' + testVektor. veličina ( ) + ' elementi' ) ;
}
}

Opis koda:

  • Prvo, deklarirajte i inicijalizirajte ' Vektor ' s lažnim vrijednostima tipa cijelog broja koristeći ' dodati ()” metoda.
  • Zatim stvorite metodu iteratora koja koristi ' hasNext ()” i “ Sljedeći ()” metode. Prikazuje rezidentne podatkovne elemente i njihovu odgovarajuću veličinu.
  • Zatim upotrijebite ' hasNext ()” svojstvo duž objekta iteratora unutar “ dok ' petlja.
  • Nakon toga upotrijebite ' Sljedeći ()” za odabir nadolazećeg elementa, a zatim ukloniti () metoda se poziva za brisanje svakog prijemnog elementa.
  • Na taj način se uklanjaju svi elementi vektora i na konzoli se prikazuje veličina vektora.

Opis koda:

Gornji kod potvrđuje da su svi elementi iz zbirke uklonjeni.

Primjer 3: Uklanjanje elementa pomoću ListIteratora

ListIterator radi slično metodi iteratora. ListIterator izvodi obilazak na obje strane u smjeru naprijed i nazad. Za uklanjanje određenih elemenata iz zbirke pomoću ListIteratora u Javi, posjetite donji kod:

uvoz java.util.ArrayList ;
uvoz java.util.ListIterator ;
javnost razreda ListIteratorDemo {

//Inicijalizacija metode main().
javnost statički poništiti glavni ( Niz [ ] args )
{ //Deklariranje i inicijaliziranje ArrayList
ArrayList < Niz > odrastao = novi ArrayList < Niz > ( ) ;
odrastao dodati ( 'Majica s kapuljačom' ) ;
odrastao dodati ( 'Pol' ) ;
odrastao dodati ( 'Henleys' ) ;
odrastao dodati ( 'Znoj' ) ;
odrastao dodati ( 'ležerno' ) ;
odrastao dodati ( 'Luksuzno' ) ;
odrastao dodati ( 'Dryfit' ) ;


ListIterator < Niz > litra = odrastao listIterator ( ) ;
Sustav . van . println ( 'Popis prije uklanjanja' ) ;
za ( int ja = 0 ; ja < odrastao veličina ( ) ; ja ++ )
Sustav . van . ispisati ( odrastao dobiti ( ja ) + ' ' ) ;
dok ( litra. hasNext ( ) ) {
ako ( litra. Sljedeći ( ) . jednaki ( 'Znoj' ) ) {
litra. ukloniti ( ) ;
}
}
Sustav . van . println ( ' \n Popis nakon uklanjanja' ) ;
za ( int ja = 0 ; ja < odrastao veličina ( ) ; ja ++ )
Sustav . van . ispisati ( odrastao dobiti ( ja ) + ' ' ) ;
}
}

Opis gornjeg koda:

  • Prvo deklarirajte i inicijalizirajte ArrayList s lažnim vrijednostima tipa String i prikažite sve elemente na konzoli koristeći ' za ' petlja.
  • Zatim stvorite objekt koji poziva ' hasNext ()' metoda unutar ' dok ' petlja. Prolazi kroz sve stambene elemente.
  • Onda ' ako ” koristi se izjava koja provjerava svaki element s određenim tekstom, kada se taj element podudara s ukloniti ()” poziva se metoda. Briše određeni element iz ' aArt ” pod nazivom ArrayList.
  • Na kraju, prikažite modificirani ArrayList na konzoli.

Nakon kompilacije:

Snimka potvrđuje da je navedeni podatkovni element uklonjen iz zbirke pomoću ListIteratora.

Zaključak

Da biste uklonili element iz zbirke, ' ukloniti ()” koristi se metoda iteratora. Iterator prolazi kroz ArrayList kako bi pronašao ciljane podatke. Nakon što se pronađe ' ukloniti ()” metoda se koristi za uklanjanje tog specifičnog podatkovnog elementa. Nudi standardiziranu tehniku ​​u različitim zbirkama i sprječava probleme i pojavu nekoliko iznimaka poput ' ConcurrentModificationException ”. Uz to, ' ListIterator ” također može biti od pomoći.