[Java] Iterator 인터페이스
by Choi HyeSun
Iterator<E> 인터페이스
-
자바의 컬렉션 프레임워크가 컬렉션에 저장된 요소를 읽어오는 표준화 방법
-
Collaction 인터페이스에서는 Iterator 인터페이스를 구현한 클래스의 인스턴스를 반환하는 iterator() 메소드를 정의하여 각 요소에 접근하도록 하고 있음
- Collaction 인터페이스를 상속받는 List와 Set 인터페이스에서도 iterator() 메소드를 사용할 수 있음
-
사용 예제
import java.util.ArrayList;
import java.util.Iterator;
public class Sunny {
public static void main(String[] args) {
ArrayList<Integer> array = new ArrayList<Integer>();
array.add(1);
array.add(3);
array.add(2);
array.add(1);
Iterator<Integer> it = array.iterator();
while (it.hasNext()) {
System.out.print(iter.next() + " ");
}
}
}
// 1, 3, 2, 1 출력
Iterator 인터페이스 구성
-
boolean hasNext();
- 다음 요소(element)가 있다면 true, 없다면 false 반환
-
Object next();
- 다음 요소를 반환
-
void remove();
- 반복자로 반환되는 마지막 요소를 현재 컬렉션에서 제거(선택 기능)
public interface Iterator {
boolean hasNext();
Object next();
void remove();
}
Iterator를 사용하는 경우
-
자바에서는 1.5부터는 Enhanced for문을 사용하도록 권장
-
for (Element e : Collections)
-
같은 성능을 유지하면서도 코드의 명확성을 확보하고 발생할 수 있는 버그를 예방해줌
-
-
요소의 선택적 제거 or 대체 등을 수행하기 위한 경우에는 iterator 사용
Subscribe via RSS