Java Iterator 인터페이스 마스터하기: 실전 가이드와 코드 예제
Java Iterator 인터페이스
Iterator 인터페이스가 Java 컬렉션을 효율적으로 탐색하고 조작하는 방법을 실전 예제와 함께 알아봅니다.
Iterator 인터페이스는 Java의 컬렉션 프레임워크 일부로, 모든 컬렉션을 균일한 방식으로 순회할 수 있게 합니다. ListIterator에 의해 리스트용으로 확장됩니다.
모든 컬렉션 클래스는 Iterator 인스턴스를 반환하는 iterator() 메서드를 제공하여 안전한 순회와 조작을 가능하게 합니다.
Iterator 메서드
인터페이스는 네 가지 핵심 메서드를 정의합니다:
hasNext() - 더 많은 요소가 존재하면 true를 반환합니다.
next() - 다음 요소를 조회합니다.
remove() - next()가 마지막으로 반환한 요소를 삭제합니다.
forEachRemaining() - 남은 모든 요소에 주어진 동작을 적용합니다.
예제: ArrayList와 Iterator 사용하기
다음 스니펫은 ArrayList<Integer>에서 네 가지 메서드를 모두 구현합니다:
import java.util.ArrayList;
import java.util.Iterator;
class Main {
public static void main(String[] args) {
// ArrayList 생성
ArrayList<Integer> numbers = new ArrayList<>();
numbers.add(1);
numbers.add(3);
numbers.add(2);
System.out.println("ArrayList: " + numbers);
// Iterator 획득
Iterator<Integer> iterator = numbers.iterator();
// 첫 번째 요소 접근
int number = iterator.next();
System.out.println("Accessed Element: " + number);
// 해당 요소 제거
iterator.remove();
System.out.println("Removed Element: " + number);
System.out.print("Updated ArrayList: ");
// 남은 요소들 순회
while (iterator.hasNext()) {
iterator.forEachRemaining(value -> System.out.print(value + ", "));
}
}
}
실행 결과
ArrayList: [1, 3, 2]
Accessed Element: 1
Removed Element: 1
Updated ArrayList: 3, 2,
forEachRemaining()에 전달된 람다 표현식은 이 메서드가 남은 각 요소를 간결하게 처리하는 방식을 보여줍니다.