Iterator — 컬렉션 순회 인터페이스

Iterator — 컬렉션 순회 인터페이스

Iterator<E>컬렉션에 대한 반복자예요. Java Collections Framework에서 Enumeration의 자리를 대체했어요. Iterator는 두 가지 점에서 Enumeration과 달라요.

출처: Java API Reference

본문

public interface Iterator<E>
  1. 순회 중 제거 허용 — 호출자가 잘 정의된 의미론으로 순회 중 기본 컬렉션에서 요소를 제거할 수 있어요(선택적 연산).
  2. 메서드 이름 개선 — 메서드 이름이 더 명확해졌어요.

이 인터페이스는 Java Collections Framework의 멤버예요.

hasNext

boolean hasNext()

순회에 더 많은 요소가 있으면 true를 반환해요. 즉 next()가 예외를 던지는 대신 요소를 반환할 수 있으면 true예요.

next

E next()

순회의 다음 요소를 반환해요.

remove

default void remove()

이 반복자가 마지막에 반환한 요소를 기본 컬렉션에서 제거해요(선택적 연산). next()를 호출할 때마다 한 번만 호출할 수 있어요. forEachRemaining 호출 후 이 메서드를 호출하면 반복자 동작은 명시되지 않아요. 기본 구현은 UnsupportedOperationException을 던져요.

forEachRemaining

default void forEachRemaining(Consumer<? super E> action)

남은 각 요소에 대해 action을 수행해요. 모든 요소가 처리되거나 action이 예외를 던질 때까지 계속돼요. action이 던진 예외는 호출자에게 전달되고, 이후 반복자 동작은 명시되지 않아요. 순회 순서가 지정된 경우 그 순서대로 수행돼요.

더 알아보기 (Learn more)