Sobes.tech
Junior

Čo je to iterátor a na čo je potrebný?

sobes.tech AI

Odpoveď od AI

Iterátor v Jave je objekt, ktorý umožňuje sekvenčné prechádzanie prvkov kolekcie bez nutnosti poznať jej vnútornú štruktúru.

Hlavné ciele používania iterátora:

  • Abstrakcia: Poskytuje jednotný spôsob prechádzania prvkov pre rôzne typy kolekcií (zoznamy, množiny a pod.).
  • Bezpečnosť: Umožňuje odstraňovať prvky z kolekcie počas prechádzania bez narušenia logiky prechádzania.
  • Nezávislosť: Prechádzanie prvkov nezávisí od konkrétnej implementácie kolekcie.

Rozhranie Iterator<E> definuje tri hlavné metódy:

  • hasNext(): Vráti true, ak v iterácii ešte sú prvky.
  • next(): Vráti nasledujúci prvok v iterácii.
  • remove(): Odstráni z základnej kolekcie prvok, ktorý bol vrátený posledným volaním next().

Príklad použitia:

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

// Príklad použitia iterátora
public class IteratorExample {

    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("Apple");
        list.add("Banana");
        list.add("Cherry");

        Iterator<String> iterator = list.iterator();

        // Prechádzanie prvkov pomocou iterátora
        while (iterator.hasNext()) {
            String element = iterator.next();
            System.out.println(element);

            // Odstránenie prvku počas prechádzania (príklad)
            if (element.equals("Banana")) {
                iterator.remove();
            }
        }

        System.out.println("Po odstránení: " + list);
    }
}