SortedMap은 항목(entries)을 오름차순으로 유지하고 키의 자연 순서에 따라 정렬하거나 SortedMap 생성 시 제공된 Comparator에 따라 정렬하는 맵입니다. 자연 순서 및 Comparators는 Object Ordering 섹션에서 논의됩니다. SortedMap 인터페이스는 일반 Map 작업과 다음에 대한 작업을 제공합니다.
public interface SortedMap<K, V> extends Map<K, V>{
Comparator<? super K> comparator();
SortedMap<K, V> subMap(K fromKey, K toKey);
SortedMap<K, V> headMap(K toKey);
SortedMap<K, V> tailMap(K fromKey);
K firstKey();
K lastKey();
}
SortedMap이 Map에서 상속받은 작업은 두 가지 예외를 제외하고 정렬된 맵과 일반 맵에서 동일하게 작동합니다.
인터페이스에 의해 보장되지는 않지만 모든 Java 플랫폼의 SortedMap 구현에 있는 Collection 뷰의 toString 메소드는 뷰의 모든 요소를 순서대로 포함하는 문자열을 반환합니다.
관례상, 모든 범용 Map 구현은 Map을 취하는 표준 변환 생성자를 제공합니다. SortedMap 구현도 예외는 아닙니다. TreeMap에서 이 생성자는 키의 자연 순서에 따라 항목의 순서를 지정하는 인스턴스를 만듭니다. 이것은 아마도 실수였을 것입니다. 지정된 Map 인스턴스가 SortedMap인지 확인하기 위해 동적으로 확인하고, 그렇다면 동일한 기준(comparator 또는 자연 순서)에 따라 새 맵을 정렬하는 것이 더 나을 것입니다. TreeMap은 이전의 접근 방식을 취했기 때문에 SortedMap을 사용하고 동일한 기준에 따라 정렬된 주어진 SortedMap과 동일한 매핑을 포함하는 새 TreeMap을 반환하는 생성자도 제공합니다. SortedMap 생성자가 일반 맵 생성자보다 우선적으로 호출되는지 여부를 결정하는 것은 런타임 유형이 아니라 인수의 컴파일 시간 유형입니다.
SortedMap 구현은 또한 규칙에 따라 Comparator를 취하고 지정된 Comparator에 따라 정렬된 빈 맵을 반환하는 생성자를 제공합니다. 이 생성자에 null이 전달되면 키의 자연 순서에 따라 매핑을 정렬하는 Map이 반환됩니다.
이 인터페이스는 SortedSet의 정확한 맵 아날로그이기 때문에 SortedSet 인터페이스 섹션의 모든 관용구와 코드 예제는 사소한 수정만으로 SortedMap에 적용됩니다.