이터레이터 패턴은 컬렉션 구현 방법을 노출시키지 않으면서 집합체 안에 들어있는 모든 항목에 접근할 수 있도록 하는 패턴이다. java의 stream이 대표적인 이터레이터 패턴의 예시이다.
예시 코드
java.util의 Iterator를 상속받았고 각각 일반 배열, List를 가지고 있는 두개의 클래스를 만들었다.
ArrIterator와 ListIterator는 다른 타입의 Integer 목록을 가지고 있지만 인터페이스를 상속받아 구현한 hasNext()와 next()를 통해 동일한 방식으로 요소를 탐색할 수 있다.
이 링크로 가면 코드를 볼 수 있다.