Sobes.tech
Junior

Co je to iterátor a k čemu je potřeba?

sobes.tech AI

Odpověď od AI

Iterátor v Javě je objekt, který umožňuje sekvenční procházení prvků kolekce bez nutnosti znát její vnitřní strukturu.

Hlavní cíle použití iterátoru:

  • Abstrakce: Poskytuje jednotný způsob procházení prvků různých typů kolekcí (seznamy, množiny atd.).
  • Bezpečnost: Umožňuje odstraňovat prvky z kolekce během iterace, aniž by došlo k narušení logiky průchodu.
  • Nezávislost: Procházení prvků nezávisí na konkrétní implementaci kolekce.

Rozhraní Iterator<E> definuje tři hlavní metody:

  • hasNext(): Vrací true, pokud v iteraci ještě jsou prvky.
  • next(): Vrací následující prvek v iteraci.
  • remove(): Odstraňuje z základní kolekce prvek, který byl vrácen posledním voláním next().

Příklad použití:

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

// Příklad použití iterátoru
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();

        // Procházení prvků pomocí iterátoru
        while (iterator.hasNext()) {
            String element = iterator.next();
            System.out.println(element);

            // Odstranění prvku během iterace (příklad)
            if (element.equals("Banana")) {
                iterator.remove();
            }
        }

        System.out.println("Po odstranění: " + list);
    }
}