Разлика между HashMap и TreeMap в Java

Автор: Laura McKinney
Дата На Създаване: 2 Април 2021
Дата На Актуализиране: 14 Може 2024
Anonim
Review: Quiz 0
Видео: Review: Quiz 0

Съдържание


HashMap и TreeMap са класовете Map и двете реализират интерфейса на Map. Map е обект, който съхранява двойки ключ-стойност, където всеки ключ е уникален и може да има дублирани стойности. Класът HashMap използва хеш таблицата като структура от данни. TreeMap използва червено-черното дърво като структура от данни. Основната разлика между HashMap и Treemap е, че HashMap не запазва реда за поставяне, докато дървовидна карта прави.

Така че нека започнем нашата дискусия относно разликите между HashMap и TreeMap с помощта на сравнителната диаграма, показана по-долу.

  1. Сравнителна диаграма
  2. дефиниция
  3. Ключови разлики
  4. заключение

Сравнителна диаграма

Основа за сравнениеHashMapдървовидна карта
Основен HashMap не поддържа реда на вмъкване.TreeMap поддържа реда на поставяне.
Структура на данниHashMap използва Hash Table като основна структура на данни.TreeMap използва Red-Black Tree като основна структура на данни.
Нулеви ключове и стойности HashMap позволява Null клавиш веднъж реклама Null стойност произволен брой време.TreeMap не позволява Null ключ, но позволява Null стойности произволен брой време.
Разширява и изпълняваHashMap разширява класа на AbstractMap и реализира интерфейс на Map.TreeMap разширява класа на AbstractMap и реализира интерфейс SortedMap и NavigableMap.
производителностHashMap работи по-бързо.TreeMap в сравнение с HashMap работи по-бавно.


Определение на HashMap

HashMap е клас на карта. Той използва хеш маса, като структура на данни за съхраняване на двойката ключови стойности на картите. Вмъкването на двойка ключ-стойност се извършва с помощта на хеш код от ключове, Следователно, всеки ключ от картата трябва да бъде уникален, тъй като ще бъде използван за извличане на стойностите.

Редът за вмъкване в HashMap е не запазен, което означава, че обектът на хешмап не връща елементите в реда, в който са били вмъкнати. От друга страна, редът, в който елементите ще бъдат върнати, не е фиксиран.

Най- ключ е позволено да бъде НУЛА наведнъж, но на стойности може да бъде НУЛА по всяко време. HashMap може да съдържа хетерогенен обекти за ключове, както и стойности.

Има четири конструктора на HashMap:

HashMap () HashMap (Карта m) HashMap (int капацитет), HashMap (int капацитет, поплавък fillRatio)

Най- първи конструктор създава празния обект на HashMap. Най- втори конструктор инициализира HashMap, използвайки елементи от Map m. Най- трета конструктор инициализира HashMap с капацитета, предоставен в аргумента. Най- четвърти конструктор инициализира капацитета, както и съотношението на запълване на HashMap обекта.


По подразбиране капацитет на HashMap е 16и по подразбиране съотношение на запълване на HashMap е 0.75.

Дефиниция на TreeMap

Като HashMap, дървовидна карта също е клас клас. TreeMap се разширява AbstractMap клас и инструменти NavigabelMap и SortedMap, Обектите на TreeMap съхраняват елементите на картата в структурата на дървото. Структурата на данните, използвана за съхранение на картата, е Червено-черно дърво.

TreeMap съхранява двойката ключови стойности в подредения ред, което помага за бързото извличане на елементите. Обектът TreeMap връща елементите в сортиран (възходящ) поръчка.

Има четири конструктора на TreeMap:

TreeMap () TreeMap (сравнителен <? Super K> comp) TreeMap (Карта <? Разширява K,? Разширява V> m) TreeMap (SortedMap см)

Най- първи конструкторите създават празен обект на TreeMap, който би бил сортиран в естествен ред неговите ключове. Най- втори конструктор ще създаде празна карта на дърво, която ще бъде сортирана от Сравнител cmp, Най- трета конструктор по-горе ще създаде карта, която ще бъде инициализирана, като се използват записи на карта m, Най- четвърти конструктор ще създаде карта, която ще бъде инициализирана с помощта на записите на SortedMap см.

Treemap няма свой собствен метод, той използва метода на интерфейса NavigableMap и SortedMap и класа AbstractMap.

  1. И двата класа се използват за създаване на обекти на картата, но основната разлика между HashMap и Treemap е, че HashMap не поддържа реда на вмъкване, докато Treemap.
  2. Структурата на данните, използвана от Hashmap за съхраняване на елементи от картата, е хеш таблицата, а структурата на данните, използвана от TreeMap за съхраняване на елементите на картата, е червено-черното дърво.
  3. И класовете Hashmap и Treemap разширяват класа AbstractMap, но класът HashMap реализира интерфейс Map, а TreeMap реализира интерфейса NavigableMap и SortedMap.
  4. Стойностите могат да бъдат Null произволен брой време и в двете, но ключът е позволено да бъде Null само веднъж в HashMap и ключ никога не може да бъде в Treemap.
  5. Изпълнението на HashMap е по-бързо, не губи време за сортиране на елементите на картата, както прави TreeMap. Следователно, TreeMap се представя по-бавно от HashMap.

Заключение:

TreeMap трябва да се използва само когато ви е необходима двойка ключови стойности в подредена форма. Тъй като сортирането включва разходите за изпълнение. Несинхронизираният HashMap работи по-бързо.