Iterator w Java

Iterator to wzorzec projektowy, który pozwala na sekwencyjne przeglądanie elementów kolekcji bez konieczności eksponowania jej wewnętrznej reprezentacji. W Javie, iterator jest szeroko używany w kolekcjach, takich jak listy, zbiory i mapy, i jest kluczowym elementem interfejsu Iterable. Umożliwia bezpieczne przeglądanie kolekcji oraz usuwanie elementów podczas iteracji.

Przykład użycia Iteratora w Java

W tym przykładzie stworzymy prostą kolekcję FruitBasket, która przechowuje owoce, a następnie użyjemy iteratora do przeglądania i wyświetlania nazw owoców.

Klasa Fruit
// Klasa reprezentująca owoc
public class Fruit {
    private String name;

    // Konstruktor klasy Fruit
    public Fruit(String name) {
        this.name = name;
    }

    // Metoda zwracająca nazwę owocu
    public String getName() {
        return name;
    }
}
Klasa FruitBasket
import java.util.ArrayList;
import java.util.Iterator;

// Klasa reprezentująca koszyk z owocami
public class FruitBasket implements Iterable<Fruit> {
    private ArrayList<Fruit> fruits = new ArrayList<>();

    // Metoda dodająca owoc do koszyka
    public void addFruit(Fruit fruit) {
        fruits.add(fruit);
    }

    // Implementacja metody iterator z interfejsu Iterable
    @Override
    public Iterator<Fruit> iterator() {
        return fruits.iterator();
    }
}
Przykład użycia FruitBasket i Iteratora
// Główna klasa programu
public class Main {
    public static void main(String[] args) {
        // Tworzenie instancji FruitBasket
        FruitBasket basket = new FruitBasket();

        // Dodawanie owoców do koszyka
        basket.addFruit(new Fruit("Jabłko"));
        basket.addFruit(new Fruit("Banana"));
        basket.addFruit(new Fruit("Pomarańcza"));

        // Użycie iteratora do wyświetlenia nazw owoców
        for(Fruit fruit : basket) {
            System.out.println(fruit.getName());
        }
    }
}

Podsumowanie

Iterator jest niezwykle użytecznym wzorcem projektowym w Javie, pozwalającym na łatwe i bezpieczne przeglądanie elementów kolekcji. Dzięki abstrakcji, jaką oferuje, programiści mogą korzystać z różnych kolekcji w sposób jednolity, nie martwiąc się o ich wewnętrzną strukturę. Wykorzystanie iteratora ułatwia także operacje takie jak usuwanie elementów podczas iteracji, co jest trudniejsze do osiągnięcia przy użyciu tradycyjnych pętli for. To sprawia, że iterator jest niezbędnym narzędziem w arsenale każdego programisty Javy

Jeżeli chcesz przyśpieszyć swoją naukę tworzenia stron chciałbym polecić mój kurs video Java w którym nauczysz się tego języka od podstaw do zaawansowanych jego aspektów.

Scroll to Top