TreeMap

TreeMap

TreeMap основан на красно-чёрном дереве, вследствие чего TreeMap сортирует элементы по ключу в естественном порядке или на основе заданного компаратора (по возрастанию). TreeMap гарантирует скорость доступа log(n) для операций containsKey, get, put и remove.

Кроме методов интерфейса Map класс TreeMap реализует методы интерфейса NavigableMap. Например, мы можем получить все объекты до или после определённого ключа с помощью методов headMap и tailMap. Также мы можем получить первый и последний элементы, наибольший или наименьший элемент и т.д.

При попытке добавить null-элемент в TreeMap происходит исключение NullPointerException.

TreeMap не синхронизирован. Поэтому, если имеется множество потоков, работающих с данной коллекцией и хотя бы один поток может её изменять, то коллекцию нужно синхронизировать внешне, либо использовать Collections.synchronizedSortedMap().

Общая рекомендация - если не нужна упорядоченность, использовать HashMap.
Коллекции