Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник Java

TreeMap

Словарь, ключи которого всегда отсортированы.

Доступно с: Java 1.2

Синтаксис

public class TreeMap<K, V> implements NavigableMap<K, V>

Примеры

Ключи по алфавиту:

void main() {
    Map<String, Integer> ages = new TreeMap<>();
    ages.put("Oleg", 25);
    ages.put("Anna", 31);
    ages.put("Ivan", 19);
    IO.println(ages);
}

Результат:

{Anna=31, Ivan=19, Oleg=25}

Поиск ближайшего ключа — например, тариф по сумме заказа:

void main() {
    TreeMap<Integer, Integer> discounts = new TreeMap<>(Map.of(0, 0, 100, 5, 500, 10));
    IO.println(discounts.floorEntry(250).getValue() + "%");
    IO.println(discounts.firstKey() + " " + discounts.lastKey());
    IO.println(discounts.headMap(500));
}

Результат:

5%
0 500
{0=0, 100=5}

Примечания

Операции выполняются за логарифмическое время. Ключи должны быть Comparable или нужно передать Comparator в конструктор. Ключ null не допускается. Навигационные методы: floorKey(), ceilingKey(), headMap(), tailMap(), subMap().

См. также

  • HashMap — Словарь на основе хеш-таблицы: быстрый поиск по ключу, порядок не гарантирован.
  • LinkedHashMap — Словарь, который помнит порядок добавления ключей.
  • TreeSet — Множество, которое хранит элементы в отсортированном порядке.

Вопросы и ответы по теме

В учебнике

  • Словари: Map и HashMap — Словари Map в Java: пары ключ — значение, put и get, getOrDefault, подсчёт с merge, TreeMap и LinkedHashMap.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.