Ответ
Элементы в TreeMap<K, V> хранятся в отсортированном порядке по ключам.
Детали:
- Порядок сортировки определяется либо:
- Естественным порядком (
natural ordering) ключей, если ключи реализуют интерфейсComparable(например,Integer,String). - Внешним
Comparator, переданным в конструкторTreeMap.
- Естественным порядком (
- Внутренняя структура — красно-черное дерево (Red-Black Tree), которое поддерживает элементы в отсортированном виде и гарантирует логарифмическое время выполнения основных операций (
put,get,remove— O(log n)).
Пример:
import java.util.*;
public class Main {
public static void main(String[] args) {
// TreeMap с естественным порядком (по возрастанию)
TreeMap<Integer, String> map = new TreeMap<>();
map.put(3, "Three");
map.put(1, "One");
map.put(2, "Two");
// Элементы выводятся в отсортированном порядке по ключу: 1, 2, 3
System.out.println(map); // {1=One, 2=Two, 3=Three}
// Итерация также происходит в отсортированном порядке
for (Map.Entry<Integer, String> entry : map.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
}
}
Важно: TreeMap не позволяет использовать null в качестве ключа, если только для сравнения не используется специальный Comparator, обрабатывающий null.