logo

Iterátor v jazyku Java

Iterátor v Jave je jedným z najčastejšie používaných kurzory v rámci Java Collections Framework . Používa sa na prechádzanie alebo opakovanie prvkov kolekcie jeden po druhom.

  • Používa sa na prechádzanie prvkov iba v smere dopredu.
  • Bezpečne odstráni prvky počas prechodu pomocou remove().
  • Iterátor je univerzálny kurzor, ktorý sa vzťahuje na všetky typy kolekcií – zoznam zoznamov a front.

Vyhlásenie Iterátora

Iterator verejného rozhrania

Tu E predstavuje typ prvkov, ktoré sa majú iterovať.



Vytváranie objektov iterátora

Objekt Iterator sa vytvorí volaním metódy iterator() na objekte kolekcie. Tu použijeme Iterátor na prechádzanie a tlač každého prvku v ArrayList .

Zbierkamená = nový ArrayList<>();
Iterátoritr = names.iterator();

Cassidy Hutchinson vzdelanie
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);   }  } } 

Výstup
A B C 

Hierarchia Iterátora

Iterátor je súčasťou balík java.util a je implementovaný všetkými triedami kolekcií prostredníctvom ich podrozhraní.

listiterator_extends_iterator_' title=Iterátor-kurzor

Metódy rozhrania iterátora

Rozhranie iterátora definuje tri metódy uvedené nižšie:

  • hasNext(): Vráti hodnotu true, ak má iterácia viac prvkov.
  • ďalšie(): Vráti ďalší prvok v iterácii. To hádže NoSuchElementException ak už nie je prítomný žiadny prvok.
  • odstrániť(): Odstráni posledný prvok vrátený funkciou next(). Túto metódu možno zavolať iba raz za volanie funkcie next().

Poznámka Metóda remove() môže vyvolať dve výnimky, konkrétne takto:

Interná práca

V tejto časti sa pokúsime pochopiť, ako interne fungujú Java Iterator a jeho metódy. Zoberme si nasledujúci objekt LinkedList, aby sme pochopili túto funkciu.

pridať do poľa java

Krok 1: Teraz vytvorte objekt Iterator na objekte List, ako je uvedené nižšie:

IterátorcitiesIterator = cities.iterator();

Iterátor „citiesIteartor“ bude vyzerať takto:

Java Iterator Krok 1' loading='lazy' title=Krok-1

Kurzor iterátora tu ukazuje pred prvým prvkom zoznamu.

Krok 2: Teraz spustíme nasledujúci útržok kódu.

sanjay dutt a

citiesIterator.hasNext();
citiesIterator.next();

Java Iterator Krok 2' loading='lazy' title=Krok-2

Keď spustíme vyššie uvedený útržok kódu, kurzor iterátora ukazuje na prvý prvok v zozname, ako je znázornené na obrázku vyššie.

Krok 3: Teraz spustíme nasledujúci útržok kódu.

citiesIterator.hasNext();
citiesIterator.next();

java mapa
Java Iterator Krok 3' loading='lazy' title=Krok-3


Keď spustíme vyššie uvedený útržok kódu, kurzor iterátora ukazuje na druhý prvok v zozname, ako je znázornené na obrázku vyššie.

Krok 4: Vykonajte tento proces, aby ste dosiahli kurzor iterátora na koncový prvok zoznamu.

Java Iterator Krok č' loading='lazy' title=Krok-4

Krok 5: Po prečítaní posledného prvku, ak spustíme nižšie uvedený útržok kódu, vráti falošnú hodnotu.

citiesIterator.hasNext();

Java Iterator na konci' loading='lazy' title=

Keďže kurzor iterátora ukazuje na posledný prvok zoznamu hasNext() metóda vracia falošnú hodnotu.

Poznámka: Java Iterator podporuje iba iteráciu smerom dopredu, takže je známy ako jednosmerný kurzor. Naproti tomu ListIterator je obojsmerný a umožňuje prechod v oboch smeroch.

Java-Ilterator-6' loading='lazy' title=Java Iterator: Smer vpred

Príklad: Tu použijeme Iterátor na prechod a odstránenie nepárnych prvkov z ArrayList.

webové stránky ako coomeet
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);  } } 

Výstup
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] 

Vysvetlenie: Vo vyššie uvedenom príklade vytvoríme ArrayList celých čísel, potom ho iterujeme pomocou Iterátora a odstránime všetky nepárne čísla. Vytlačí zoznam pred a po odstránení nepárnych prvkov a vytlačí upravený zoznam iba s párnymi číslami.