Класс java.util.TreeMap

TreeMap  представляет собой иерархическое представление данных (ключ, значение) в виде двоичного дерева. Пары в этом классе сортируются по ключу в порядке возрастания.

Как класс HashMap, TreeMap реализует интерфейс java.util.Map. В  Основное различие между HashMap и TreeMap  заключается в том, что HashMap является неупорядоченной коллекцией, в то время как TreeMap по умолчанию используется в порядке возрастания в зависимости от ключей. TreeMap является несинхронизированной коллекцией, что означает, что она не защищена от параллельного доступа.

TreeMap example

Пример 1:

В этом примере Ключи и значения хранятся в TreeMap. Для печати элементов необходимо создать объект Iterator затем выполните курс с циклом  while.

import java.util.TreeMap; 
import java.util.Set;
import java.util.Iterator;
import java.util.Map;

public class parcours_treemap {

public static void main(String args[]) {

/* Объявление TreeMap */
TreeMap tm = new TreeMap();

/*Добавляем элементы в TreeMap*/
tm.put(12, "val1");
tm.put(5, "val2");
tm.put(8, "val3");
tm.put(2, "val4");

/* Вывод содержимого с помощью Iterator */
Set set = tm.entrySet();
Iterator iterator = set.iterator();
while(iterator.hasNext()) {
Map.Entry mapentry = (Map.Entry)iterator.next();
System.out.print("key: "+ mapentry.getKey() + " +
"- значение: "+mapentry.getValue()+"\n");
}

}
}
Выполнение этого кода возвращает следующий результат:

key: 2 - value: val4
key: 5 - значение: val2
ключ: 8 - значение: val3
ключ: 12 - значение: val1
Мы видим, что пары< ключ, значение> сортируются по возрастанию keys.

Пример 2:

Для создания TreeMap из другого, вы можете вызвать метод putAll(Map)  который будет реструктурировать дерево по мере его добавления.

import java.util.TreeMap; 

public class parcours {

public static void main(String args[]) {

/* Объявление TreeMap */
TreeMap tm = new TreeMap();

/*Добавляем элементы в TreeMap*/
tm.put(12, "val1");
tm.put(5, "val2");
tm.put(8, "val3");
tm.put(2, "val4");

TreeMap tm2 = new TreeMap();
tm2.putAll(tm);

/*выводим несколько пар просто для проверки */
System.out.print("key: 12" + " - value: "+tm2.get(12)+"\n");
System.out.print("ключ: 8" + " - значение: "+tm2.get(8)+"\n");

/*первый и последний ключ*/
System.out.print("первый ключ: "+tm2.firstKey()+" последний ключ: "+tm2.lastKey());
}
}
При выполнении этого кода будет получен следующий результат:

key: 12 - value: val1
key: 8 - value: val3
first key: 2 последний ключ: 12
References:
Documentation TreeMap
upmf-grenoble:TreeMap