자바 컬렉션 프레임워크에서 컬렉션에 저장되어 있는 요소들을 읽어오는 방법을 표준화했는데
그 중 하나가 Iterator이다.
여기서 컬렉션 프레임워크는 List,Set,Map,Queue 등을 의미한다.
인텔리제이를 통해 Iterator 클래스를 찾아보았다.
boolean hasNext()
는 Iterator 안에 다음 값이 들어있는지 확인한다.
Object next()
는 Iterator의 다음 값을 가져온다.
void remove()
는 next()
로 읽어 온 요소를 삭제한다.
ArrayList<Integer> list = new ArrayList<Integer>();
Iterator<Integer> itr = list.iterator();
while(itr.hasNext()) {
list.get(itr.next());
}
iterator명.hasNext()
를 통해 값이 있는지 확인한 후 값이 있으면
itr.next()
값을 list에 넣는 방식으로 컬렉션에 값을 저장할 수 있다.
굳이 Iterator를 써서 컬렉션의 값들을 불러오는 이유가 왜일까??
Iterator는 모든 컬렉션 프레임워크에 공통으로 사용 가능하다.
컬렉션 프레임워크에서 쉽게 값을 가져오고 제거할 수 있다.
3개의 메소드만 알면 되어서 사용하기 매우 쉽다.
이렇게 3가지의 장점이 있다.
그렇다면 단점은 무엇일까??
처음부터 끝까지의 단방향 반복만 가능하다.
값을 변경하거나 추가가 불가능하다.
대량의 데이터를 제어할 때 속도가 느리다.
Iterator는 자바 컬렉션 프레임워크에서 값을 가져오거나 삭제할 때 공통으로 사용 가능하다.
Iterator<데이터타입> iterator명 = 컬렉션.iterator();
로 정의할 수 있다.
3개의 메소드만 알면 사용하기 매우 쉽다.
처음부터 끝까지 단방향 반복만 가능하고 값을 변경하거나 추가할 수 없다.