Java TreeMap — это реализация интерфейса Java Map на основе Red-Black-Tree.

Записи в TreeMap всегда сортируются на основе естественного порядка ключей или на основе пользовательского компаратора, который вы можете указать во время создания TreeMap.

Класс TreeMap является частью структуры коллекций Java. Он реализует интерфейс Navigable, который, в свою очередь, расширяет интерфейс SortedMap.

Интерфейс SortedMap предоставляет функции для поддержания порядка ключей. А интерфейс NavigableMap предоставляет функции для навигации по карте. Например, поиск записи чуть больше или чуть меньше заданного ключа, поиск первой и последней записи в TreeMap и т. д.

Поскольку TreeMap реализует интерфейс NavigableMap, он имеет функции как NavigableMap, так и SortedMap.

Ниже приведены несколько ключевых моментов, которые следует учитывать при работе с TreeMap в Java.

  • TreeMap всегда сортируется по ключам. Порядок сортировки соответствует естественному порядку ключей. Вы также можете предоставить пользовательский Comparator для TreeMap во время создания, чтобы он мог сортировать ключи с помощью предоставленного Comparator.
  • TreeMap не может содержать повторяющиеся ключи.
  • TreeMap не может содержать нулевой ключ, однако может иметь нулевые значения.
  • TreeMap не синхронизирован. Доступ к TreeMap должен быть явно синхронизирован в многопоточной среде.