Iterable — for-each 루프의 대상이 되는 인터페이스

Iterable — for-each 루프의 대상이 되는 인터페이스

Iterable<T>를 구현하면 그 객체를 향상된 for 문(enhanced for statement, 일명 for-each 루프) 의 대상으로 쓸 수 있어요. 자바 컬렉션 계층의 뿌리가 되는 인터페이스예요.

출처: Java API Reference

본문

Collection, List, Set, Queue, Deque 등 자바 컬렉션 프레임워크의 거의 모든 핵심 인터페이스가 이 인터페이스를 상속받아요. 덕분에 이들을 구현한 컬렉션은 모두 for (T x : collection) 형태로 순회할 수 있어요.

타입 매개변수 T는 iterator가 반환하는 요소의 타입이에요.

메서드

  • Iterator<T> iterator() — 타입 T의 요소를 순회하는 iterator를 반환해요.
  • default void forEach(Consumer<? super T> action) — 모든 요소가 처리되거나 action이 예외를 던질 때까지 각 요소에 대해 주어진 action을 수행해요.
  • default Spliterator<T> spliterator() — 이 Iterable이 나타내는 요소들에 대한 Spliterator를 생성해요.

이 중 iterator()만이 유일한 추상 메서드예요. forEachspliterator는 default 메서드로 기본 구현이 제공돼요.

더 알아보기 (Learn more)