Класът Java TreeMap съхранява данни в дървовидна структура, използвайки интерфейс за карта. Този клас разширява класа AbstractMap и, подобно на своя родителски клас, TreeMap има два параметъра тип. Един от параметрите на неговия тип представлява ключовете в TreeMap, докато другият представлява стойностите.
Структурата на данните TreeMap съхранява двойки ключ-стойност и ви позволява да извършвате CRUD операции върху тези данни.
Как да създадете TreeMap в Java
Класът TreeMap има четири конструктора, които можете да използвате, за да създадете нов обект TreeMap. Конструкторът по подразбиране е най-популярният от четирите. Този конструктор не приема аргументи и генерира празна дървовидна карта.
// Създаване на нова дървовидна карта
TreeMap клиенти = нов TreeMap();
Кодът по-горе генерира празна дървовидна карта, наречена клиенти.
Попълване на структурата от данни TreeMap
The слагам() метод добавя елемент към обект TreeMap. Необходими са два аргумента - ключ и неговата стойност. Можете да добавяте елементи към дървовидната карта в произволен ред и структурата на данните ще ги съхранява във възходящ ред според техните ключове.
// Попълване на дървовидна карта
клиенти.пут(105, "Джесика Джоунс");
клиенти.пут(102, "Марк Уилямс");
клиенти.пут(104, "Фил Блеър");
клиенти.пут(101, "Ким Браун");
клиенти.пут(103, "Джим Райли");
Кодът по-горе добавя пет клиента в произволен ред към дървовидната карта на клиентите.
Преглед на елементи в TreeMap
Класът TreeMap съхранява своите данни в обект. И така, за да видите всички елементи в дървовидна карта, можете просто да отпечатате обекта на дървовидна карта в конзолата:
// Преглед на всички елементи на дървовидната карта като обект
System.out.println (клиенти);
Кодът по-горе отпечатва следния изход към конзолата:
{101=Ким Браун, 102=Марк Уилямс, 103=Джим Райли, 104=Фил Блеър, 105=Джесика Джоунс}
Обърнете внимание, че обектът по-горе показва елементите във възходящ ред. Можете също да видите всеки елемент и съответния му ключ, като използвате Java for цикъл.
// Преглед на всички елементи с итератор
за (Влизане клиент: 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 клас също има a ясно() метод, който ви позволява да изтриете всички елементи в дървовидната карта.
TreeMap vs. HashMap Java клас
TreeMap и HashMap са два от най-популярните класове за карти на Java. И двамата разширяват класа AbstractMap. Тази връзка дава на класовете TreeMap и HashMap достъп до много от същите функции.
Има обаче някои забележителни разлики между тези два класа карти. TreeMap използва имплементация на Червено-черно дърво на интерфейса Map, докато HashMap използва хеш таблица. HashMap ви позволява да съхранявате един нулев ключ, докато TreeMap не го прави. И накрая, HashMap е по-бърз от TreeMap. Алгоритмичната скорост на първия е O(1), докато на втория е O(log (n)).