Что означает «Sorted» в интерфейсе SortedMap (Java)?

«Что означает «Sorted» в интерфейсе SortedMap (Java)?» — вопрос из категории Java Core, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Sorted в SortedMap означает, что элементы (пары ключ-значение) хранятся в отсортированном порядке по ключам. Это интерфейс, расширяющий Map, который гарантирует этот порядок.

Особенности:

  • Порядок определяется либо естественным порядком ключей (если они реализуют Comparable), либо внешним Comparator, переданным при создании карты.
  • Итерация по коллекциям ключей, значений или записей происходит в порядке возрастания ключей.

Пример использования TreeMap (стандартной реализации):

SortedMap<String, Integer> fruitBasket = new TreeMap<>();
fruitBasket.put("banana", 2);
fruitBasket.put("apple", 1);
fruitBasket.put("cherry", 3);

// Элементы автоматически сортируются по ключу (String)
System.out.println(fruitBasket); // {apple=1, banana=2, cherry=3}
System.out.println(fruitBasket.firstKey()); // "apple"

Ключевые методы 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, ConcurrentSkipListMap (потокобезопасная).