Sobes.tech
Junior

Czym jest iterator i do czego jest potrzebny?

sobes.tech AI

Odpowiedź od AI

Iterator w Javie to obiekt, który pozwala na sekwencyjne przechodzenie przez elementy kolekcji bez konieczności znajomości jej wewnętrznej struktury.

Główne cele korzystania z iteratora:

  • Abstrakcja: Zapewnia jednolity sposób przechodzenia przez elementy różnych typów kolekcji (listy, zbiory itp.).
  • Bezpieczeństwo: Pozwala na usuwanie elementów z kolekcji podczas iteracji bez naruszania logiki przechodzenia.
  • Niezależność: Przechodzenie przez elementy nie zależy od konkretnej implementacji kolekcji.

Interfejs Iterator<E> definiuje trzy główne metody:

  • hasNext(): Zwraca true, jeśli w iteracji są jeszcze elementy.
  • next(): Zwraca następny element w iteracji.
  • remove(): Usuwa z podstawowej kolekcji element zwrócony ostatnim wywołaniem next().

Przykład użycia:

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

// Przykład użycia iteratora
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();

        // Przechodzenie przez elementy z użyciem iteratora
        while (iterator.hasNext()) {
            String element = iterator.next();
            System.out.println(element);

            // Usuwanie elementu podczas iteracji (przykład)
            if (element.equals("Banana")) {
                iterator.remove();
            }
        }

        System.out.println("Lista po usunięciu: " + list);
    }
}