이터레이터
Iterator 인터페이스
Iterator는 자바의 컬렉션 프레임워크에서 컬렉션에 저장되어 있는 요소들을 읽어오는 방법을 표준화 한것
컬렉션 프레임 워크랑 데이터를 저장하는 클래스들을 표준화한 설계이다.
컬렉션 프레임워크는 3가지 인터페이스로 크게 나누어진다.
- Set: 순서를 유지하지 안흔 데이터 집합, 데이터 중복을 허용하지 않고 HashSet, TreeSet 등이 있다.
- List: 순서를 유지하는 데이터의 집합이다. 데이터의 중복이 허용되고, LinkedList, ArrayList 등이 있다.
- Map: 키(Key) 와 값(Value)으로 이루어진 데이터의 집합이다. 순서는 유지되지 않으며, 키의 중복은 허락 하지않는다
Iterator는 이런 집합체로 부터 정보를 얻어오며 Iterator의 메소드는 hasNext(), next(), remove()가 있다.
- hasNext() : 읽어올 요소가 남아있는지 확인하는 메소드이다. 요소가 있으면 true , 없으면 false
- next() : 다음 데이터를 반환한다
- remove(): next()로 읽어온 요소를 삭제한다.
예제 코드
import java.util.ArrayList;
import java.util.Iterator;
public class Practice {
public static void main(String[] args) {
System.out.println("List 생성");
ArrayList list = new ArrayList();
list.add("일");
list.add("월");
list.add("수");
Iterator iter = list.iterator();
while (iter.hasNext() == true) {
String day = (String) iter.next();
if (day == "수") {
iter.remove();
}
System.out.println("Day : " + day);
}
System.out.println("-------------------");
iter = list.iterator();
while(iter.hasNext() == true) {
String day = (String)iter.next();
System.out.println("Day : " + day);
}
}
}