Iterable — for-each 루프의 대상이 되는 인터페이스
Iterable — for-each 루프의 대상이 되는 인터페이스
Iterable<T>를 구현하면 그 객체를 향상된 for 문(enhanced for statement, 일명 for-each 루프) 의 대상으로 쓸 수 있어요. 자바 컬렉션 계층의 뿌리가 되는 인터페이스예요.
본문
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()만이 유일한 추상 메서드예요. forEach와 spliterator는 default 메서드로 기본 구현이 제공돼요.