반복자 패턴 (Iterator)
반복자 패턴(Iterator Pattern)은 배열(Array), 리스트(List), 해시맵(Map) 등 데이터가 저장된 내부 구조나 원리를 모르더라도 집합 객체 안의 모든 원소들을 통일된 방법으로 차례대로 접근(순회)할 수 있게 해주는 행위 패턴입니다.
Java의 java.util.Iterator (hasNext(), next())가 바로 이 패턴의 구현체입니다. 배열은 `for(int i=0; i
import java.util.ArrayList;
import java.util.List;
interface Iterator<T> {
boolean hasNext();
T next();
}
interface Container<T> {
Iterator<T> getIterator();
}
class NameRepository implements Container<String> {
public String[] names = {"Robert", "John", "Julie", "Lora"};
public Iterator<String> getIterator() {
return new NameIterator();
}
private class NameIterator implements Iterator<String> {
int index;
public boolean hasNext() { return index < names.length; }
public String next() {
if (this.hasNext()) return names[index++];
return null;
}
}
}
public class Main {
public static void main(String[] args) {
NameRepository namesRepository = new NameRepository();
for (Iterator<String> iter = namesRepository.getIterator(); iter.hasNext();) {
System.out.println("이름: " + iter.next());
}
}
}