[JAVA] Iterator와 Enhanced For Loop

1. 개요

자바의 컬렉션 프레임워크에서 컬렉션에 저장된 요소들을 읽어오는 방법을 표준화 한 것

  • Collection 인터페이스에서는 Iterator 인터페이스를 구현한 클래스의 인스턴스를 반환하는 iterator() 메소드를 정의하여 각 요소에 접근하도록 함
    Collection 인터페이스를 상속받는 List, Set 인터페이스에서도 iterator() 사용 가능


2. 메소드

메소드설명
boolean hasNext()해당 이터레이션(iteration)이 다음 요소를 가지고 있으면 true를 반환하고,
더 이상 다음 요소를 가지고 있지 않으면 false를 반환
E next()이터레이션(iteration)의 다음 요소를 반환
default void remove()해당 반복자로 반환되는 마지막 요소를 현재 컬렉션에서 제거 (선택적 기능)


3. Enhanced For Loop

  • 자바에서는 JDK 1.5부터 추가된 Enhanced for 문 사용하도록 권장
  • 특징
    • Iterator와 같은 성능 유지
    • 코드의 명확성 확보
    • 발생할 수 있는 버그 예방
  • 비교
    • 기존 For Loop
      for(초기값; 조건식; 증감식) {..}
    • 향상된 For Loop
      for(초기화 : 배열) {..}
  • 예시
int[] arr = new int[] {1,2,3,4,5};
int sum = 0;

for(int n : arr) { 
    sum += n;
}

💡 주의

요소의 선택적 제거나 대체 등을 수행하기 위한 경우
→ 반복자(iterator) 사용 필요




📖 참고

좋은 웹페이지 즐겨찾기