Iteratorius Java

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 .

Kolekcija vardai = naujas ArrayList <>();
Iteratorius itr = vardai.iteratorius();

Java
   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.

listiterator_extends_iterator_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:

„Java Iterator“ 1 veiksmas1 veiksmas

Čia Iteratoriaus žymeklis yra nukreiptas prieš pirmąjį sąrašo elementą.

2 veiksmas: Dabar paleisime šį kodo fragmentą.

miestaiIteratorius.hasNext();
miestaiIteratorius.next();

„Java Iterator“ 2 veiksmas2 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();

„Java Iterator“ 3 veiksmas3 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.

„Java Iterator“ veiksmas n4 veiksmas

5 veiksmas: Nuskaitęs paskutinį elementą, jei paleidžiame toliau pateiktą kodo fragmentą, jis grąžina klaidingą reikšmę.

miestaiIteratorius.hasNext();

„Java Iterator“ pabaigoje

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-Ilterator-6„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.