Iteratorius Java
„Java“ iteratorius yra vienas dažniausiai naudojamų žymekliai Java kolekcijų sistemoje . Jis naudojamas kolekcijos elementams pereiti arba kartoti po vieną.
- Jis naudojamas elementams važiuoti tik į priekį.
- Saugiai pašalina elementus važiuojant naudojant Remove().
- Iteratorius yra universalus žymeklis, kuris taikomas visų tipų rinkiniams – sąrašo rinkiniui ir eilei.
Iteratoriaus deklaracija
viešosios sąsajos iteratorius
Čia E reiškia elementų, kurie turi būti kartojami, tipą.
Iteratoriaus objekto kūrimas
Iteratoriaus objektas sukuriamas kolekcijos objekte iškviečiant iterator() metodą. Čia mes naudosime Iteratorių, norėdami pereiti ir spausdinti kiekvieną elementą ArrayList .
JavaKolekcija
vardai = naujas ArrayList <>();
Iteratoriusitr = vardai.iteratorius();
import java.util.ArrayList ; import java.util.Iterator ; public class Geeks { public static void main ( String [] args ) { // Create an ArrayList and add some elements ArrayList < String > al = new ArrayList <> (); al . add ( 'A' ); al . add ( 'B' ); al . add ( 'C' ); // Obtain an iterator for the ArrayList Iterator < String > it = al . iterator (); // Iterate through the elements and print each one while ( it . hasNext ()) { // Get the next element String n = it . next (); System . out . println ( n ); } } }
Išvestis
A B C
Iteratoriaus hierarchija
Iteratorius yra dalis java.util paketą ir yra įdiegta visose kolekcijų klasėse per savo antrines sąsajas.
Iteratorius-žymeklis Iteratoriaus sąsajos metodai
Iteratoriaus sąsaja apibrėžia tris toliau išvardytus metodus:
- hasNext (): Grąžina tiesa, jei iteracija turi daugiau elementų.
- kitas (): Grąžina kitą iteracijos elementą. Tai meta NoSuchElementException jei daugiau elemento nėra.
- pašalinti (): Pašalina paskutinį elementą, grąžintą next(). Šis metodas gali būti iškviestas tik vieną kartą per kvietimą į next().
Pastaba : Remove() metodas gali padaryti dvi išimtis, būtent taip:
Vidinis darbas
Šiame skyriuje pabandysime suprasti, kaip Java Iterator ir jo metodai veikia viduje. Paimkime šį LinkedList objektą, kad suprastume šią funkciją.
1 veiksmas: Dabar sąrašo objekte sukurkime Iteratoriaus objektą, kaip parodyta toliau:
Iteratorius
miestaiIteratorius = miestai.iteratorius();
„CitiesIteartor“ iteratorius atrodys taip:
1 veiksmas Čia Iteratoriaus žymeklis yra nukreiptas prieš pirmąjį sąrašo elementą.
2 veiksmas: Dabar paleisime šį kodo fragmentą.
miestaiIteratorius.hasNext();
miestaiIteratorius.next();
2 veiksmas Kai paleidžiame aukščiau pateiktą kodo fragmentą, Iteratoriaus žymeklis nurodo pirmąjį sąrašo elementą, kaip parodyta aukščiau esančioje diagramoje.
3 veiksmas: Dabar paleisime šį kodo fragmentą.
miestaiIteratorius.hasNext();
miestaiIteratorius.next();
3 veiksmas
Kai paleidžiame aukščiau pateiktą kodo fragmentą, Iteratoriaus žymeklis nukreipia į antrąjį sąrašo elementą, kaip parodyta aukščiau esančioje diagramoje.
4 veiksmas: Atlikite šį procesą, kad pasiektumėte Iteratoriaus žymeklį iki galo sąrašo elemento.
4 veiksmas 5 veiksmas: Nuskaitęs paskutinį elementą, jei paleidžiame toliau pateiktą kodo fragmentą, jis grąžina klaidingą reikšmę.
miestaiIteratorius.hasNext();
Kaip Iteratoriaus žymeklis nurodo į po paskutinio sąrašo elemento hasNext () metodas grąžina klaidingą reikšmę.
Pastaba: „Java Iterator“ palaiko tik į priekį nukreiptą iteraciją, todėl yra žinomas kaip vienakryptis žymeklis. Priešingai, ListIterator yra dvikryptis, leidžiantis judėti abiem kryptimis.
„Java Iterator“: kryptis pirmyn Pavyzdys: Čia mes naudosime Iteratorių, kad pereitume ir pašalintume nelyginius elementus iš „ArrayList“.
Java import java.util.ArrayList ; import java.util.Iterator ; public class Geeks { public static void main ( String [] args ) { // Creating an ArrayList of Integer type ArrayList < Integer > al = new ArrayList <> (); // Adding elements to the ArrayList for ( int i = 0 ; i < 10 ; i ++ ) { al . add ( i ); } // Printing the original list System . out . println ( 'Original List: ' + al ); // Creating an Iterator for the ArrayList Iterator < Integer > itr = al . iterator (); // Iterating through the list and removing odd elements while ( itr . hasNext ()) { // Getting the next element int i = itr . next (); System . out . print ( i + ' ' ); // Removing odd elements if ( i % 2 != 0 ) { itr . remove (); } } System . out . println (); // Printing the modified list after removal of odd elements System . out . println ( 'Modified List: ' + al ); } }
Išvestis
Original List: [0 1 2 3 4 5 6 7 8 9] 0 1 2 3 4 5 6 7 8 9 Modified List: [0 2 4 6 8]
Paaiškinimas: Aukščiau pateiktame pavyzdyje sukuriame sveikųjų skaičių ArrayList, tada jį kartojame naudodami Iteratorių ir pašaliname visus nelyginius skaičius. Jis išspausdina sąrašą prieš ir po nelyginių elementų pašalinimo ir spausdina pakeistą sąrašą tik su lyginiais skaičiais.