Iterator w Javie jest jednym z najczęściej używanych kursory w środowisku Java Collections Framework . Służy do przechodzenia lub iterowania elementów kolekcji jeden po drugim.
- Służy do przemieszczania elementów wyłącznie w kierunku do przodu.
- Bezpiecznie usuwa elementy podczas przechodzenia za pomocą metody usuwania ().
- Iterator to uniwersalny kursor, który ma zastosowanie do wszystkich typów kolekcji — zestawu list i kolejki.
Deklaracja iteratora
interfejs publiczny Iterator
Tutaj E reprezentuje typ elementów, po których należy wykonać iterację.
Tworzenie obiektu iteratora
Obiekt Iterator jest tworzony poprzez wywołanie metody iterator() na obiekcie kolekcji. Tutaj użyjemy Iteratora do przeglądania i drukowania każdego elementu w pliku Lista tablic .
JavaKolekcja
nazwy = nowa lista tablic<>();
Iteratoritr = nazwy.iterator(); rodzaje drzew binarnych
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); } } }
Wyjście
A B C
Hierarchia iteratora
Iterator jest częścią pakiet java.util i jest implementowany przez wszystkie klasy kolekcji poprzez ich podinterfejsy.
Kursor iteratoraMetody interfejsu iteratora
Interfejs iteratora definiuje trzy metody wymienione poniżej:
- maNastępny(): Zwraca wartość true, jeśli iteracja zawiera więcej elementów.
- Następny(): Zwraca następny element w iteracji. Rzuca Wyjątek NoSuchElement jeśli nie ma już więcej elementów.
- usunąć(): Usuwa ostatni element zwrócony przez next(). Metodę tę można wywołać tylko raz na wywołanie metody next().
Notatka : metoda usuwania() może zgłosić dwa wyjątki, a mianowicie następujące:
Praca wewnętrzna
W tej sekcji postaramy się zrozumieć, jak wewnętrznie działa Java Iterator i jego metody. Aby zrozumieć tę funkcjonalność, weźmy następujący obiekt LinkedList.
wyśrodkuj obraz w CSS
Krok 1: Utwórzmy teraz obiekt Iterator na obiekcie List, jak pokazano poniżej:
Iterator
miastaIterator = miasta.iterator();
Iterator „citiesIteartor” będzie wyglądał jak poniżej:
Krok 1Tutaj Kursor Iteratora wskazuje przed pierwszym elementem Listy.
Krok 2: Teraz uruchomimy następujący fragment kodu.
jak odczytać plik json
miastaIterator.hasNext();
miastaIterator.next();
Krok 2Kiedy uruchomimy powyższy fragment kodu, Kursor Iteratora wskazuje pierwszy element na liście, jak pokazano na powyższym diagramie.
Krok 3: Teraz uruchomimy następujący fragment kodu.
miastaIterator.hasNext();
miastaIterator.next();tablice Java
Krok 3
Kiedy uruchomimy powyższy fragment kodu, Kursor Iteratora wskazuje drugi element na liście, jak pokazano na powyższym diagramie.
Krok 4: Wykonaj ten proces, aby dotrzeć kursorem iteratora do końcowego elementu listy.
Krok 4Krok 5: Jeśli po przeczytaniu ostatniego elementu uruchomimy poniższy fragment kodu, zwróci on wartość fałszywą.
miastaIterator.hasNext();

Ponieważ Kursor Iteratora wskazuje na ostatni element Listy maNastępny() metoda zwraca fałszywą wartość.
Notatka: Iterator Java obsługuje tylko iterację w kierunku do przodu, dlatego jest nazywany kursorem jednokierunkowym. W przeciwieństwie do tego ListIterator jest dwukierunkowy, umożliwiając poruszanie się w obu kierunkach.
Iterator Java: kierunek do przoduPrzykład: Tutaj użyjemy Iteratora do przeglądania i usuwania nieparzystych elementów z ArrayList.
poradnik hadoopaJava
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); } }
Wyjście
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]
Wyjaśnienie: W powyższym przykładzie tworzymy ArrayList liczb całkowitych, a następnie iterujemy po niej za pomocą Iteratora i usuwamy wszystkie liczby nieparzyste. Drukuje listę przed i po usunięciu elementów nieparzystych, a zmodyfikowaną listę zawiera tylko liczby parzyste.