Класът 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)).