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 메서드를 얻어와서 반복 처리하는 것보다 속도에서 불리함

 

 

출처

https://junghn.tistory.com/entry/JAVA-Iterator%EC%9D%B4%EB%9E%80-%EC%82%AC%EC%9A%A9%EB%B2%95-%EC%98%88%EC%A0%9C-%EC%9E%A5%EC%A0%90%EA%B3%BC-%EB%8B%A8%EC%A0%90

https://vaert.tistory.com/108