Класът Java TreeMap съхранява данни в дървовидна структура, използвайки интерфейс за карта. Този клас разширява класа AbstractMap и, подобно на своя родителски клас, TreeMap има два параметъра тип. Един от параметрите на неговия тип представлява ключовете в TreeMap, докато другият представлява стойностите.

Структурата на данните TreeMap съхранява двойки ключ-стойност и ви позволява да извършвате CRUD операции върху тези данни.

Как да създадете TreeMap в Java

Класът TreeMap има четири конструктора, които можете да използвате, за да създадете нов обект TreeMap. Конструкторът по подразбиране е най-популярният от четирите. Този конструктор не приема аргументи и генерира празна дървовидна карта.

// Създаване на нова дървовидна карта
TreeMap клиенти = нов TreeMap();

Кодът по-горе генерира празна дървовидна карта, наречена клиенти.

Попълване на структурата от данни TreeMap

The слагам() метод добавя елемент към обект TreeMap. Необходими са два аргумента - ключ и неговата стойност. Можете да добавяте елементи към дървовидната карта в произволен ред и структурата на данните ще ги съхранява във възходящ ред според техните ключове.

instagram viewer

// Попълване на дървовидна карта
клиенти.пут(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)).