Pagkakaiba sa pagitan ng HashMap at TreeMap sa Java

May -Akda: Laura McKinney
Petsa Ng Paglikha: 2 Abril 2021
I -Update Ang Petsa: 14 Mayo 2024
Anonim
Review: Quiz 0
Video.: Review: Quiz 0

Nilalaman


Ang HashMap at TreeMap ay ang mga klase ng Map at parehong ipinatutupad ang interface ng Map. Ang mapa ay isang bagay na nag-iimbak ng mga pares ng pangunahing halaga, kung saan ang bawat key ay natatangi at maaaring mayroong mga dobleng halaga. Ang klase ng HashMap ay gumagamit ng talahanayan ng hash bilang isang istraktura ng data. Ginagamit ng TreeMap ang punong pula na itim bilang isang istraktura ng data. Ang pangunahing pagkakaiba sa pagitan ng HashMap at Treemap ay ang HashMap hindi pinapanatili ang pagkakasunud-sunod ng pagpasok samantalang, ang Treemap ay.

Kaya't simulan natin ang aming talakayan tungkol sa mga pagkakaiba sa pagitan ng HashMap at TreeMap sa tulong ng tsart ng paghahambing na ipinakita sa ibaba.

  1. Tsart ng paghahambing
  2. Kahulugan
  3. Pangunahing Pagkakaiba
  4. Konklusyon

Tsart ng paghahambing

Batayan para sa PaghahambingHashMapTreeMap
Pangunahing Hindi napapanatili ng HashMap ang pagkakasunud-sunod ng pagpasok.Ang TreeMap ay nagpapanatili ng pagkakasunud-sunod ng pagpasok.
DataStrukturaGinagamit ng HashMap ang Hash Table bilang isang nakapailalim na istraktura ng data.Ginagamit ng TreeMap ang Red-Black Tree bilang isang pinagbabatayan na istraktura ng data.
Mga Null Keys at Halaga Pinapayagan ng HashMap ang Null key sa sandaling ad Null ang halaga sa anumang bilang ng oras.Hindi pinapayagan ng TreeMap ang Null key ngunit pinapayagan ang Null Values ​​ng anumang bilang ng oras.
Pagpapalawak at PagpapatupadAng HashMap ay nagpapalawak ng klase ng AbstractMap at nagpapatupad ng interface ng Mapa.Ang TreeMap ay nagpapalawak ng klase ng AbstractMap at nagpapatupad ng SortedMap at NavigableMap interface.
PagganapTumatakbo nang mas mabilis ang HashMap.Ang TreeMap sa paghahambing sa HashMap ay nagpapatakbo ng mas mabagal.


Kahulugan ng HashMap

HashMap ay isang klase ng Mapa. Ginagamit nito ang hash table, bilang isang istraktura ng data upang maiimbak ang mga pares ng mahalagang halaga ng mga mapa. Ang pagpasok ng pares ng key-halaga ay ginagawa gamit ang hash code ng mga susi. Samakatuwid, ang bawat susi sa mapa ay dapat na natatangi dahil gagamitin ito upang makuha ang mga halaga.

Ang insertion order sa HashMap ay hindi napanatili na nangangahulugang ang object ng hashmap ay hindi ibabalik ang mga elemento sa pagkakasunud-sunod na naipasok nila. Sa kabilang banda, ang pagkakasunud-sunod kung saan ibabalik ang mga elemento ay hindi maayos.

Ang susi pinapayagan na WALA sabay-sabay, ngunit ang mga halaga ay maaaring maging WALA sa anumang bilang ng oras. Ang HashMap ay maaaring maglaman ng magkakaiba mga bagay para sa mga susi pati na rin ang mga halaga.


Mayroong apat na konstruksyon ng HashMap:

HashMap () HashMap (Map m) HashMap (int kapasidad), HashMap (int kapasidad, float fillRatio)

Ang una ang tagabuo ay lumilikha ng walang laman na bagay ng HashMap. Ang pangalawa iniaayos ng konstruksyon ang HashMap gamit ang mga elemento ng Map m. Ang pangatlo iniaayos ng konstruksyon ang HashMap na may kapasidad na ibinigay sa argumento. Ang ikaapat iniaatas ng konstruksyon ang kapasidad pati na rin ang fill ratio ng bagay na HashMap.

Ang default kapasidad ng HashMap ay 16, at ang default punan ang ratio ng HashMap ay 0.75.

Kahulugan ng TreeMap

Tulad ng HashMap, TreeMap ay din sa isang klase ng Mapa. Pinalawak ng TreeMap AbstractMap klase at nagpapatupad NavigabelMap at Pagsunud-sunod. Ang mga bagay ng TreeMap ay nag-iimbak ng mga elemento ng mapa sa istraktura ng puno. Ang istraktura ng data na ginamit para sa pag-iimbak ng Mapa ay ang Punong pula-Itim.

Inilalagay ng TreeMap ang pares ng pangunahing halaga sa pinagsunod-sunod na pagkakasunud-sunod na tumutulong sa mabilis na pagkuha ng mga elemento. Ang object ng TreeMap ay nagbabalik ng mga elemento sa pinagsunod-sunod (pag-akyat) order.

Mayroong apat na konstruksyon ng TreeMap:

TreeMap () TreeMap (Comparator <? Super K> comp) TreeMap (Map <? Umaabot K,? Umaabot ng V> m) TreeMap (SortedMap sm)

Ang una ang mga konstruksyon ay lumikha ng isang walang laman na object ng TreeMap na maiayos sa natural na pagkakasunud-sunod ng mga susi nito. Ang pangalawa gagawa ng tagabuo ng isang walang laman na mapa ng puno na ibubukod ng Comparator cmp. Ang pangatlo gagawa ng konstruktor sa itaas ang isang treemap na sisimulan gamit ang mga entry ng Map m. Ang ikaapat gagawa ng tagabuo ng isang treemap na sisimulan gamit ang mga entry ng Pagsunud-sunod sm.

Ang Treemap ay walang anumang bagong pamamaraan ng sarili nitong ginagamit nito ang paraan ng interface NavigableMap at SortedMap at ang klase ng AbstractMap.

  1. Parehong mga klase ay ginagamit upang lumikha ng mga bagay ng mapa, ngunit ang pangunahing pagkakaiba sa pagitan ng HashMap at Treemap ay ang HashMap ay hindi pinapanatili ang pagkakasunud-sunod ng pagpasok samantalang ang Treemap ay.
  2. Ang istraktura ng data na ginamit ng Hashmap upang mag-imbak ng mga elemento ng mapa ay ang mesa ng hash at ang istraktura ng data na ginamit ng TreeMap upang maimbak ang mga elemento ng mapa ay ang pulang-itim na puno.
  3. Parehong mga klase ng Hashmap at Treemap ay nagpapalawak ng klase ng AbstractMap, ngunit ang klase ng HashMap ay nagpapatupad ng interface ng Map at ang TreeMap ay nagpapatupad ng NavigableMap at SortedMap interface.
  4. Ang mga halaga ay maaaring Null anumang bilang ng oras sa pareho ngunit ang susi ay pinahihintulutan na si Null minsan lamang sa HashMap at isang key ay hindi maaaring maging sa Treemap.
  5. Ang pagganap ng HashMap ay mas mabilis na hindi nasayang ang oras sa pag-uuri ng mga elemento ng mapa tulad ng ginagawa ng TreeMap. Samakatuwid, ang TreeMap ay gumaganap ng mas mabagal kaysa sa HashMap.

Konklusyon:

Dapat gamitin lamang ang TreeMap kapag nangangailangan ka ng key na pares ng halaga sa pinagsunod-sunod na form. Tulad ng pag-uuri ay may kasamang gastos sa pagganap. Ang HashMap pagiging hindi naka-synchronise ay mas mabilis na nagpapatakbo.