SortedMap<K, V> — 키의 전체 순서를 유지하는 맵

SortedMap<K, V> — 키의 전체 순서를 유지하는 맵

키에 대해 전체 순서(total ordering) 를 추가로 제공하는 Map 인터페이스예요. 맵은 키의 자연 순서 또는 생성 시 제공된 Comparator에 따라 정렬돼요.

출처: Java API Reference

본문

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(포함) 이상인 맵의 부분 뷰를 반환해요.

생성자 관례

일반 목적의 정렬 맵 구현 클래스는 다음 네 가지 "표준" 생성자를 제공해야 해요:

  1. 키의 자연 순서로 정렬된 빈 맵을 만드는 무인자 생성자.
  2. 지정된 Comparator로 정렬된 빈 맵을 만드는 Comparator 인자 생성자.
  3. 기본 맵과 같은 키-값 매핑을 갖는 새 맵을 만드는 Map 인자 생성자.
  4. 기본 정렬 맵과 같은 매핑과 순서를 갖는 새 맵을 만드는 SortedMap 인자 생성자.

이 인터페이스는 Java Collections Framework의 한 구성원이에요.

더 알아보기 (Learn more)