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.