Ответ
SortedMap<K, V> — это интерфейс в Java (пакет java.util), расширяющий Map<K, V>, который гарантирует, что его элементы (пары ключ-значение) хранятся в отсортированном порядке по ключам.
Ключевые характеристики:
- Порядок сортировки определяется либо естественным порядком ключей (если они реализуют
Comparable<K>), либо внешнимComparator<K>, переданным при создании коллекции. - Основная реализация —
TreeMap, основанная на красно-черном дереве, что обеспечивает время выполненияO(log n)для операцийput(),get(),remove().
Пример использования:
SortedMap<String, Integer> sortedMap = new TreeMap<>();
sortedMap.put("Zebra", 10);
sortedMap.put("Apple", 5);
sortedMap.put("Banana", 7);
System.out.println(sortedMap);
// Вывод: {Apple=5, Banana=7, Zebra=10} (ключи отсортированы)
Важные методы, добавленные SortedMap:
K firstKey()– возвращает первый (наименьший) ключ.K lastKey()– возвращает последний (наибольший) ключ.SortedMap<K,V> subMap(K fromKey, K toKey)– возвращает представление части карты с ключами отfromKey(включительно) доtoKey(исключительно).SortedMap<K,V> headMap(K toKey)– возвращает ключи, строго меньшиеtoKey.SortedMap<K,V> tailMap(K fromKey)– возвращает ключи, большие или равныеfromKey.
Важно: TreeMap (стандартная реализация) не допускает null-ключи, если только не используется Comparator, который явно обрабатывает null.