자바 - 컬렉션 프레임워크 - 순회, 정렬
자바가 제공하는 Iterable, Iterator
Iterable, Iterator
자바 컬렉션 프레임워크는 배열 리스트, 연결 리스트, 해시셋 등 다양한 자료 구조를 제공한다.
자바는 컬렉션 프레임워크를 사용하는 개발자가 편리하고 일관된 방법으로 자료 구조를 순회할 수 있도록
Iterable인터페이스를 제공하고, 이미 각각의 구현체에 맞는Iterator도 다 구현해두었다.자바
Collection인터페이스 상위에Iterable이 있다는 것은 모든 컬렉션을Iterable과Iterator를 사용해서 순회할 수 있다는 뜻이다.Map의 경우key뿐만 아니라value까지 있기 때문에 바로 순회를 할 순 없다. 대신에key나value를 정해서 순회할 수 있다.keySet(),values()를 호출하면Set,Collection을 반환하기 때문에key나value를 정해서 순회할 수 있다.Entry를Set구조로 반환하는entrySet()도 순회가 가능하다.


Iterable,Iterator는 인터페이스 이므로 다형성을 활용할 수 있다.java.util.ArrayList$Itr:ArrayList의Iterator는ArrayList의 중첩 클래스이다.java.util.HashMap$KeyIterator:HashSet자료 구조는 내부에서HashMap자료 구조를 사용한다.HashMap자료 구조에서value를 사용하지 않으면HashSet과 같다.
반복자 디자인 패턴
객체 지향 프로그래밍에서 컬렉션의 요소들을 순회할 때 사용되는 디자인 패턴이다.
이 패턴은 컬렉션의 내부 표현 방식을 노출시키지 않으면서도 그 안의 각 요소에 순차적으로 접근할 수 있게 해준다.
이 패턴은 컬렉션의 구현과는 독립적으로 요소들을 탐색할 수 있는 방법을 제공하며, 이로 인해 코드의 복잡성은 줄이고 재사용성을 높일 수 있다.
Last updated