SortedMap<K, V> — 키의 전체 순서를 유지하는 맵
SortedMap<K, V> — 키의 전체 순서를 유지하는 맵
키에 대해 전체 순서(total ordering) 를 추가로 제공하는 Map 인터페이스예요. 맵은 키의 자연 순서 또는 생성 시 제공된 Comparator에 따라 정렬돼요.
본문
public interface SortedMap<K, V> extends Map<K, V>
이 순서는 정렬된 맵의 컬렉션 뷰(entrySet, keySet, values)를 순회할 때 반영돼요. 이 인터페이스는 SortedSet의 맵 버전이에요.
정렬 맵에 삽입되는 모든 키는 Comparable 인터페이스를 구현해야 하거나(또는 지정된 Comparator가 받아들여야 하며) 서로 상호 비교 가능(mutually comparable) 해야 해요. 즉 정렬 맵의 어떤 키 k1, k2에 대해서도 k1.compareTo(k2)가 ClassCastException을 던지지 않아야 해요. 이를 위반하면 해당 메서드나 생성자 호출이 ClassCastException을 던져요.
주요 메서드
firstKey()— 현재 이 맵에서 가장 낮은(첫 번째) 키를 반환해요.lastKey()— 현재 이 맵에서 가장 높은(마지막) 키를 반환해요.comparator()— 이 맵의 키를 정렬하는 데 사용된 comparator를 반환하거나, 자연 순서를 사용하면null을 반환해요.subMap(K fromKey, K toKey)— 키가fromKey(포함)부터toKey(제외)까지인 맵의 부분 뷰를 반환해요.headMap(K toKey)— 키가toKey(제외)보다 작은 맵의 부분 뷰를 반환해요.tailMap(K fromKey)— 키가fromKey(포함) 이상인 맵의 부분 뷰를 반환해요.
생성자 관례
일반 목적의 정렬 맵 구현 클래스는 다음 네 가지 "표준" 생성자를 제공해야 해요:
- 키의 자연 순서로 정렬된 빈 맵을 만드는 무인자 생성자.
- 지정된
Comparator로 정렬된 빈 맵을 만드는Comparator인자 생성자. - 기본 맵과 같은 키-값 매핑을 갖는 새 맵을 만드는
Map인자 생성자. - 기본 정렬 맵과 같은 매핑과 순서를 갖는 새 맵을 만드는
SortedMap인자 생성자.
이 인터페이스는 Java Collections Framework의 한 구성원이에요.