본문
Iterator Pattern (반복자 패턴)
프로그래밍/디자인패턴 2015. 8. 31. 15:18
반응형
iterate는 '반복하다'라는 뜻이고, iterator은 '반복자'라는 뜻입니다. 즉 무엇인가 반복할 때 iterator 객체를 사용합니다.
iterator 패턴은 반복이 필요한 자료구조(array나 List, Set, Map과 같은 구조 등)를 모두 동일한 인터페이스를 통해 접근할 수 있도록 아래의 그림처럼 iterator 객체 속에 넣은 다음, iterator 객체의 메서드를 이용해 자료구조를 활용할 수 있도록 해줍니다.
💡 Iterator.java
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class lteratorPattern implements Iterable<String> {
private List<String> list = new ArrayList<String>();
public void add(String name) {
list.add(name);
}
public Iterator<String> iterator() {
return list.iterator();
}
}
P.S. list.iterator(); 를 풀어쓰면 아래와 같다
new Iterator<String>() {
int seq = 0;
public boolean hasNext() {
return seq < list.size();
}
public String next() {
return list.get(seq++);
}
};
💡 Main.java
import java.util.Iterator;
public class Main {
public static void main(String[] args) {
lteratorPattern person = new lteratorPattern();
person.add("임승한");
person.add("홍길동");
person.add("아무개");
Iterator<String> iterator = person.iterator();
while (iterator.hasNext()) {
String element = iterator.next();
System.out.println(element);
}
}
}
💡 결과
임승한
홍길동
아무개
반응형
댓글