2024. 8. 2. 23:27ㆍJAVA/복습
지금까지 List, Set, Map, Queue, Stack 등을 학습 했다.
어떤 구현체는 배열, 어떤 구현체는 Node를 자료 저장소로 쓰기에
접근 방식 또한 다르다.
데이터를 순회함에 있어, 사용자는 자료 순회만 할 수 있으면 된다.
기능은 이미 구현 돼 있다.
Iterable 인터페이스
public interface Iterable<T>{
Iterator<T> iterator();
}
자료구조, Integer 등의 일부 래퍼클래스에는 Iteratable 이 구현 돼 있다.
Iteratable 인터페이스는 해당 자료구조가 갖는 자료 저장소를 품은 Iterator<T> 을 반환한다.
Iterator 인터페이스
그리고 이 Iterator는 hasNext(), next() 로 하여금 자료구조에 저장된 다음 데이터를 찾고 이동할 수 있게 해준다.
public interface Iterator<E> {
boolean hasNext();
E next();
}
상속 구조

최상단에서 언급한 자료구조 중 Collection (List, Queue, Set 등) 인터페이스는 Iterable 인터페이스를 상속한다.
따라서, Collection에 속해 있는 자료 구조들은 Iterable을 구현하고 있으며, iterator를 통해 자료 순회가 가능하다.
반면, 자료구조 중, Map은 다른 자료구조와 다르게 Key, Value를 쌍으로 취급하고, Collection에 속하지도, Iterable을 상속하지도 않는다.
따라서, 단순한 Map 만 가지고는 순회가 불가하다.
즉, map에 담긴 자료 구조를 순회하기 위해서는 순회가 가능한 자료구조로 가공할 필요가 있다.
많이 사용되는 것은, map 과 가장 유사한 구조를 Set이다.
Map 과 Set의 공통점
1. 순서를 보장하지 않는다.
- 공통
2. 중복을 허용하지 않는다. (Key와 자료 모두 '객체' 여야 함)
- Map 에서는 'Key' 를
- Set 에서는 '자료' 를
하여, Map 자료구조를 순회할 때 keySet, entrySet, values 등을 통해 map을 가공 후 순회하게 된다.
'JAVA > 복습' 카테고리의 다른 글
| Collections 유틸 (0) | 2024.08.03 |
|---|---|
| 정렬 - Comparatable, Comparator (0) | 2024.08.02 |
| Map (0) | 2024.08.02 |
| Set 인터페이스 (1) | 2024.08.01 |
| Set - HashSet (0) | 2024.07.31 |