Iterator jest operacyjnym wzorcem projektowym, którym zapewnia metodę dostępu sekwencyjnego do elementów obiektu zagregowanego bez ujawniania jego reprezentacji wewnętrznej.
Obecnie od czasu java 5 i pojawieniu się typów generycznych wzorzec iteratora stracił na wadze. Typy generyczne pełnią kontrolę nad zwracanymi obiektami. Każda kolekcja też, posiada metodę iterator, która zwraca jej iterator. Jeżeli chcemy więc użyć własnego, najlepiej w tym celu udekorować kolekcję, dodając funkcjonalności do iteratora.

Przykład iteratora:

Diagram wzorca:


.