STUDY
JAVA | Iterator 사용방법과 예제 & 장점과 단점
devvnn
2022. 4. 12. 11:17
Iterator란?
자바의 컬렉션에 저장되어 있는 요소들을 읽어오는 방법의 인터페이스
→ 컬렉션으로부터 정보를 얻어내는 인터페이스
예시로 이해하기
책을 보관하는 책장(Collection)이 있고, 그곳에는 책(Collection 안에 들어갈 객체)이 있음
이 책장은 도서관 사서(Iterator)가 관리하며, 사서는 무지해서 책장 처음부터 끝까지 한 번에 하나씩밖에 못가져옴
코드
LinkedList<Integer> lnkList = new LinkedList<Integer>();
lnkList.add(4);
lnkList.add(2);
lnkList.add(3);
lnkList.add(1);
Iterator<Integer> iter = lnkList.iterator();
while (iter.hasNext()) { System.out.print(iter.next() + " "); }
// 결과 : 4 2 3 1
Iterator 인터페이스는 아래와 같은 메서드를 사용하여
컬렉션의 각 요소에 접근할 수 있음
메서드 | 설명 |
boolean hasNext() | 해당 이터레이션(Iteration)이 다음 요소를 가지고 있으면 true를 반환하고, 더 이상 다음 요소를 가지고 있지 않으면 false를 반환 |
E next() | 이터레이션의 다음 요소를 반환 |
default void remove() | 해당 반복자로 반환되는 마지막 요소를 현재 컬렉션에서 제거(선택적 기능) |
Iterator의 장점과 단점
장점
- 컬렉션 종류에 관계없이 일관성 있게 프로그래밍 할 수 있음
- 소스 코드에 어떠한 컬렉션을 사용할지 정해지지 않았지만 컬렉션 내에 보관한 모든 내용을 출력하는 등의 작업을 먼저 하길 원한다면 Iterator를 사용하면 좋음
단점
- size 메서드를 얻어와서 반복 처리하는 것보다 속도에서 불리함
출처