[JAVA] Iterator와 Enhanced For Loop
1. 개요
자바의 컬렉션 프레임워크에서 컬렉션에 저장된 요소들을 읽어오는 방법을 표준화 한 것
Collection
인터페이스에서는 Iterator
인터페이스를 구현한 클래스의 인스턴스를 반환하는 iterator()
메소드를 정의하여 각 요소에 접근하도록 함
→ Collection
인터페이스를 상속받는 List
, Set
인터페이스에서도 iterator()
사용 가능
2. 메소드
자바의 컬렉션 프레임워크에서 컬렉션에 저장된 요소들을 읽어오는 방법을 표준화 한 것
Collection
인터페이스에서는 Iterator
인터페이스를 구현한 클래스의 인스턴스를 반환하는 iterator()
메소드를 정의하여 각 요소에 접근하도록 함→
Collection
인터페이스를 상속받는 List
, Set
인터페이스에서도 iterator()
사용 가능메소드 | 설명 |
---|---|
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
) 사용 필요
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
) 사용 필요
📖 참고
Author And Source
이 문제에 관하여([JAVA] Iterator와 Enhanced For Loop), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@yu-jin-song/JAVA-Iterator저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)