Iterator와 Iterable의 차이는 무엇인가요?
Iterator와Iterable은 컬렉션 프레임워크에서 사용되는 개념이다.

자바의 컬렉션 프레임워크는 컬렉션에 저장된 요소를 읽어오는 방법을
Iterator인터페이스로 표준화하고 있다.Collection인터페이스를 상속받은 자료구조List,Set,Queue는Collection상위에 있는Iterable인터페이스의Iterator기능을 사용할 수 있다.
Iterator 인터페이스가 제공하는 메서드
hasNext(): 다음 요소가 없으면false반환next(): 다음 요소 반환remove()(default) : 마지막 요소 제거
(여기서 자바는 향상된 for문을 사용하도록 권장한다. 향상된 for문(Enhanced for)을 사용하면 같은 성능을 유지하면서도 코드의 명확성을 확보하고 발생할 수 있는 버그를 예방해준다.)
ArrayList는List인터페이스의 구현체List는Collection을 상속Collection은Iterable을 상속ArrayList->List->Collection->Iterable
정리
Iterable인터페이스는 하위 클래스에서Iterator의 생성을 강제하는 역할을 한다.
Iterable을 상속받은Collection의 하위 클래스들은 모두Iterator를 가지고 있다.
Iterator는hasNext(),next()등을 구현하고 있기 때문에 이를 활용하여 컬렉션의 각 요소에 접근할 수 있다.
참고
Last updated