Как да използвате структурата на данните на Java TreeMap

Как да използвате структурата на данните на Java TreeMap

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



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





как да смените специален видеорам

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

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





// Create a new tree map 
TreeMap<Integer,String> customers = new TreeMap<Integer,String>();

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

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

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



// Populate a tree map 
customers.put(105, "Jessica Jones");
customers.put(102, "Mark Williams");
customers.put(104, "Phil Blair");
customers.put(101, "Kim Brown");
customers.put(103, "Jim Riley");

Кодът по-горе добавя пет клиента в произволен ред към дървовидната карта на клиентите.

Преглед на елементи в TreeMap

Класът TreeMap съхранява своите данни в обект. И така, за да видите всички елементи в дървовидна карта, можете просто да отпечатате обекта на дървовидна карта в конзолата:





// View all tree map items as an object 
System.out.println(customers);

Кодът по-горе отпечатва следния изход към конзолата:

{101=Kim Brown, 102=Mark Williams, 103=Jim Riley, 104=Phil Blair, 105=Jessica Jones}

Обърнете внимание, че обектът по-горе показва елементите във възходящ ред. Можете също да видите всеки елемент и съответния му ключ, като използвате Java for цикъл .





// View all items with an iterator 
for (Entry<Integer, String> customer : customers.entrySet()) {
System.out.println("Key: " + customer.getKey() + " Value: " + customer.getValue());
}

Кодът по-горе отпечатва следния изход към конзолата:

Key: 101 Value: Kim Brown 
Key: 102 Value: Mark Williams
Key: 103 Value: Jim Riley
Key: 104 Value: Phil Blair
Key: 105 Value: Jessica Jones

Актуализиране на елементи в TreeMap

Класът TreeMap ви позволява да актуализирате съществуващ елемент, като използвате замени() метод. Има два метода за замяна. Първият метод взема съществуващ ключ и новата стойност, към която искате да съпоставите съществуващия ключ.

// Replace existing value 
customers.replace(101,"Kim Smith");
System.out.println(customers);

Кодът по-горе отпечатва следния обект в конзолата:

{101=Kim Smith, 102=Mark Williams, 103=Jim Riley, 104=Phil Blair, 105=Jessica Jones}

Както виждаш Ким Браун е сега Ким Смит . Вторият метод replace() взема съществуващ ключ, текущата стойност на ключа и новата стойност, която искате да присвоите към ключа.

// Replace existing value 
customers.replace(103,"Jim Riley", "Michelle Noah");
System.out.println(customers);

Кодът по-горе отпечатва следния обект в конзолата:

{101=Kim Brown, 102=Mark Williams, 103=Michelle Noah, 104=Phil Blair, 105=Jessica Jones}

В обекта по-горе Мишел Ноа замества Джим Райли .

Изтриване на елементи от TreeMap

Ако искате да премахнете един елемент от дървовидната карта, Премахване() методът е единствената ви възможност. Той взема ключа, свързан с елемента, който искате да премахнете, и връща изтритата стойност.

// Remove an item 
customers.remove(104);
System.out.println(customers);

Изпълнението на кода по-горе отпечатва следния обект на конзолата:

{101=Kim Smith, 102=Mark Williams, 103=Michelle Noah, 105=Jessica Jones}

Това Java клас също има a ясно() метод, който ви позволява да изтриете всички елементи в дървовидната карта.

TreeMap срещу HashMap Java Class

TreeMap и HashMap са два от най-популярните класове за карти на Java. И двамата разширяват класа AbstractMap. Тази връзка дава на класовете TreeMap и HashMap достъп до много от същите функции.

Има обаче някои забележителни разлики между тези два класа карти. TreeMap използва имплементация на Червено-черно дърво на интерфейса Map, докато HashMap използва хеш таблица. HashMap ви позволява да съхранявате един нулев ключ, докато TreeMap не го прави. И накрая, HashMap е по-бърз от TreeMap. Алгоритмичната скорост на първия е O(1), докато на втория е O(log(n)).