Iterator

Słownik kwalifikacji INF.04 - Projektowanie, programowanie i testowanie aplikacji

Co to jest iterator?

Iterator to mechanizm pozwalający przechodzić kolejno po elementach zbioru, kolekcji lub innej struktury danych bez konieczności znajomości jej wewnętrznej budowy.

Iterator odpowiada na pytanie: „jaki jest następny element?”. Dzięki temu programista może odczytywać elementy listy, tablicy, zbioru czy mapy w uporządkowany sposób.

Zastosowanie iteratora

Iterator służy przede wszystkim do:
- iterowania po elementach kolekcji,
- odczytywania kolejnych elementów,
- wykonywania tej samej operacji dla każdego elementu,
- ukrycia szczegółów implementacji kolekcji.

Nie służy on do tworzenia kopii zbioru ani do zmiany typu kolekcji. W niektórych językach iterator może umożliwiać bezpieczne usuwanie elementów podczas przechodzenia po kolekcji, ale jego podstawowym zastosowaniem jest iteracja.

Przykład w Javie

List<String> imiona = List.of("Anna", "Jan", "Ola");

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

while (iterator.hasNext()) {
    String imie = iterator.next();
    System.out.println(imie);
}

Metoda hasNext() sprawdza, czy istnieje kolejny element, a next() pobiera ten element.

Iterator a pętla foreach

W wielu językach pętla foreach korzysta z iteratora w sposób ukryty:

for (String imie : imiona) {
    System.out.println(imie);
}

Kod jest krótszy, ale idea pozostaje taka sama: program przechodzi po kolejnych elementach kolekcji.

Najważniejsze na egzamin

Iterator służy do przechodzenia po elementach zbioru lub kolekcji. Jeśli w pytaniu pojawia się „zastosowanie iteratora”, najczęściej poprawna odpowiedź dotyczy właśnie iterowania.