Класс Java TreeMap хранит данные в древовидной структуре, используя интерфейс карты. Этот класс расширяет класс AbstractMap и, как и его родительский класс, TreeMap имеет два параметра типа. Один из его параметров типа представляет ключи в TreeMap, а другой — значения.
Структура данных TreeMap хранит пары ключ-значение и позволяет выполнять операции CRUD с этими данными.
Как создать TreeMap в Java
Класс TreeMap имеет четыре конструктора, которые можно использовать для создания нового объекта TreeMap. Конструктор по умолчанию — самый популярный из четырех. Этот конструктор не принимает аргументов и создает пустую карту дерева.
// Создаем новую карту дерева
ДеревоКарта клиенты = новый ДеревоКарта();
Приведенный выше код генерирует пустую карту дерева с именем клиенты.
Заполнение структуры данных TreeMap
помещать() Метод добавляет элемент в объект TreeMap. Он принимает два аргумента — ключ и его значение. Вы можете добавлять элементы на древовидную карту в любом случайном порядке, и структура данных будет хранить их в порядке возрастания в соответствии с их ключами.
// Заполняем карту дерева
клиенты.пут(105, «Джессика Джонс»);
клиенты.пут(102, «Марк Уильямс»);
клиенты.пут(104, "Фил Блэр");
клиенты.пут(101, «Ким Браун»);
клиенты.пут(103, «Джим Райли»);
Приведенный выше код добавляет пять клиентов в случайном порядке на карту дерева клиентов.
Просмотр элементов в TreeMap
Класс TreeMap хранит свои данные в объекте. Итак, чтобы увидеть все элементы карты дерева, вы можете просто вывести объект карты дерева в консоль:
// Просмотр всех элементов карты дерева как объекта
System.out.println (клиенты);
Приведенный выше код выводит на консоль следующий вывод:
{101=Ким Браун, 102=Марк Уильямс, 103=Джим Райли, 104=Фил Блэр, 105=Джессика Джонс}
Обратите внимание, что объект выше отображает элементы в порядке возрастания. Вы также можете просмотреть каждый элемент и соответствующий ему ключ, используя Java для цикла.
// Просмотр всех элементов с помощью итератора
за (Вход клиент: customers.entrySet()) {
System.out.println("Ключ: " + customer.getKey() + " Значение: " + customer.getValue());
}
Приведенный выше код выводит на консоль следующий вывод:
Ключ: 101 Значение: Ким Браун
Ключ: 102 Значение: Марк Уильямс
Ключ: 103 Значение: Джим Райли
Ключ: 104 Значение: Фил Блэр
Ключ: 105 Значение: Джессика Джонс
Обновление элементов в TreeMap
Класс TreeMap позволяет обновлять существующий элемент с помощью заменять() метод. Существует два метода замены. Первый метод принимает существующий ключ и новое значение, с которым вы хотите сопоставить существующий ключ.
// Заменить существующее значение
клиенты.заменить(101, "Ким Смит");
System.out.println (клиенты);
Приведенный выше код выводит в консоль следующий объект:
{101=Ким Смит, 102=Марк Уильямс, 103=Джим Райли, 104=Фил Блэр, 105=Джессика Джонс}
Как вы видете Ким Браун сейчас Ким Смит. Второй метод replace() принимает существующий ключ, текущее значение ключа и новое значение, которое вы хотите сопоставить с ключом.
// Заменить существующее значение
клиенты.заменить(103, «Джим Райли», «Мишель Ноа»);
System.out.println (клиенты);
Приведенный выше код выводит в консоль следующий объект:
{101=Ким Браун, 102=Марк Уильямс, 103=Мишель Ноа, 104=Фил Блэр, 105=Джессика Джонс}
В объекте выше Мишель Ноа заменяет Джим Райли.
Удаление элементов из TreeMap
Если вы хотите удалить один элемент из карты дерева, удалять() метод - ваш единственный вариант. Он берет ключ, связанный с элементом, который вы хотите удалить, и возвращает удаленное значение.
// Удалить элемент
клиентов.удалить(104);
System.out.println (клиенты);
Выполнение приведенного выше кода выводит на консоль следующий объект:
{101=Ким Смит, 102=Марк Уильямс, 103=Мишель Ноа, 105=Джессика Джонс}
Этот Java-класс также имеет Чисто() метод, позволяющий удалить все элементы на карте дерева.
Карта дерева против. Java-класс HashMap
TreeMap и HashMap — два наиболее популярных класса карт Java. Оба они расширяют класс AbstractMap. Эта связь дает классам TreeMap и HashMap доступ ко многим одним и тем же функциям.
Однако между этими двумя классами карт есть некоторые примечательные различия. TreeMap использует реализацию интерфейса Map в виде красно-черного дерева, а HashMap использует хэш-таблицу. HashMap позволяет хранить один нулевой ключ, а TreeMap — нет. Наконец, HashMap быстрее, чем TreeMap. Алгоритмическая скорость первого составляет O (1), а второго — O (log (n)).