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.