Iterátor v Javě je jedním z nejčastěji používaných kurzory v Java Collections Framework . Používá se k procházení nebo iteraci prvků kolekce jeden po druhém.
- Používá se k přejíždění prvků pouze v dopředném směru.
- Bezpečně odstraní prvky během procházení pomocí remove().
- Iterátor je univerzální kurzor, který se vztahuje na všechny typy kolekcí — sadu seznamů a frontu.
Deklarace Iterátoru
Iterátor veřejného rozhraní
Zde E představuje typ prvků, které mají být iterovány.
Vytvoření objektu iterátoru
Objekt Iterator se vytvoří voláním metody iterator() na objektu kolekce. Zde použijeme Iterátor k procházení a tisku každého prvku v ArrayList .
JavaSbírka
jména = nový ArrayList<>();
Iterátoritr = jmena.iterator();
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
Hierarchie iterátoru
Iterátor je součástí balíček java.util a je implementován všemi třídami kolekce prostřednictvím jejich podrozhraní.
css centrování obrázku
Iterátor-kurzorMetody rozhraní iterátoru
Rozhraní iterátoru definuje tři níže uvedené metody:
- hasNext(): Vrátí hodnotu true, pokud má iterace více prvků.
- další(): Vrátí další prvek v iteraci. To hází NoSuchElementException pokud není přítomen žádný další prvek.
- odstranit(): Odebere poslední prvek vrácený next(). Tuto metodu lze volat pouze jednou za volání next().
Poznámka : metoda remove() může vyvolat dvě výjimky, konkrétně takto:
Interní pracovní
V této části se pokusíme porozumět tomu, jak Java Iterator a jeho metody interně fungují. Vezměme si následující objekt LinkedList, abychom tuto funkci pochopili.
Krok 1: Nyní vytvoříme objekt Iterator na objektu List, jak je znázorněno níže:
Iterátor
citiesIterator = cities.iterator(); java přidat do pole
Iterátor 'citiesIteartor' bude vypadat takto:
Krok-1Kurzor iterátoru zde ukazuje před první prvek seznamu.
Krok 2: Nyní spustíme následující fragment kódu.
citiesIterator.hasNext();
citiesIterator.next();
Krok-2Když spustíme výše uvedený fragment kódu, kurzor Iteratoru ukazuje na první prvek v seznamu, jak je znázorněno na výše uvedeném diagramu.
Krok 3: Nyní spustíme následující fragment kódu.
citiesIterator.hasNext();
citiesIterator.next();
Krok-3
Když spustíme výše uvedený fragment kódu, kurzor Iteratoru ukazuje na druhý prvek v seznamu, jak je znázorněno na výše uvedeném diagramu.
Krok 4: Proveďte tento proces, abyste dosáhli kurzoru iterátoru na koncový prvek seznamu.
Krok-4Krok 5: Po přečtení posledního prvku, pokud spustíme níže uvedený fragment kódu, vrátí false hodnotu.
panda pivot
citiesIterator.hasNext();

Kurzor iterátoru ukazuje na poslední prvek seznamu hasNext() metoda vrací falešnou hodnotu.
Poznámka: Java Iterator podporuje pouze iteraci dopředného směru, takže je znám jako jednosměrný kurzor. Naproti tomu ListIterator je obousměrný a umožňuje průchod v obou směrech.
Java Iterator: Směr vpředPříklad: Zde použijeme Iterátor k procházení a odstraňování lichých prvků z ArrayList.
Javaimport 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]
Vysvětlení: Ve výše uvedeném příkladu vytvoříme ArrayList celých čísel, poté jej iterujeme pomocí Iterátoru a odstraníme všechna lichá čísla. Vytiskne seznam před a po odstranění lichých prvků a vytiskne upravený seznam pouze se sudými čísly.