Разлика между HashMap и TreeMap в Java
Съдържание
HashMap и TreeMap са класовете Map и двете реализират интерфейса на Map. Map е обект, който съхранява двойки ключ-стойност, където всеки ключ е уникален и може да има дублирани стойности. Класът HashMap използва хеш таблицата като структура от данни. TreeMap използва червено-черното дърво като структура от данни. Основната разлика между HashMap и Treemap е, че HashMap не запазва реда за поставяне, докато дървовидна карта прави.
Така че нека започнем нашата дискусия относно разликите между HashMap и TreeMap с помощта на сравнителната диаграма, показана по-долу.
- Сравнителна диаграма
- дефиниция
- Ключови разлики
- заключение
Сравнителна диаграма
Основа за сравнение | 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. TreeMap трябва да се използва само когато ви е необходима двойка ключови стойности в подредена форма. Тъй като сортирането включва разходите за изпълнение. Несинхронизираният HashMap работи по-бързо.
Заключение: