Pagkakaiba sa pagitan ng HashMap at naka-linkHashMap sa Java

May -Akda: Laura McKinney
Petsa Ng Paglikha: 2 Abril 2021
I -Update Ang Petsa: 10 Mayo 2024
Anonim
Pagkakaiba sa pagitan ng HashMap at naka-linkHashMap sa Java - Teknolohiya
Pagkakaiba sa pagitan ng HashMap at naka-linkHashMap sa Java - Teknolohiya

Nilalaman


Ang HashMap at LinkHashMap ay ang mga klase, na halos kapareho sa bawat isa at ginagamit para sa paglikha ng isang mapa. Ang klase ng HashMap ay nagpapalawak sa klase ng AbstractMap upang gumamit ng hash table upang maimbak ang mga elemento sa mapa. Pinapanatili ng klase ng LinkHashMap ang mga entry sa mapa batay sa pagkakasunud-sunod ng kanilang insertion. Ang tampok na nagpapakilala sa HashMap at naka-linkHashMap mula sa bawat isa ay iyon Hashmap hindi pinapanatili ang pagkakasunud-sunod ng mga naka-imbak na mga entry sa isang mapa. Sa kabilang kamay, Naka-linkHashMap gumagamit ng isang hybrid na istraktura ng data upang mapanatili ang pagkakasunud-sunod ng mga entry kung saan sila ipinasok. Sa Comparison Chart sa ibaba ay ginalugad ko ang ilang iba pang mga pagkakaiba sa pagitan ng HashMap at LinkHashMap ay tumingin lamang.

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

Tsart ng paghahambing

Batayan para sa PaghahambingHashMapNaka-linkHashMap
PangunahingAng pagkakasunud-sunod ng pagsingit sa HashMap ay hindi mapangalagaan.Ang pagkakasunud-sunod ng pagsingit ay napanatili sa LinkHashMap.
Istraktura ng DataGinagamit ng HashMap ang HashTable upang mag-imbak ng mga mapa.Ang LinkHashMap ay gumagamit ng HashTable kasama ang naka-link na Listahan upang mag-imbak ng mapa.
Pagpapalawak / PagpapatupadAng HashMap ay nagpapalawak ng AbstractMap at nagpapatupad ng interface ng Map.Ang LinkHashMap ay nagpapalawak ng Hashmap.
BersyonAng HashMap ay ipinakilala sa JDK 2.0.Ang LinkHashMap ay ipinakilala sa JDK 4.0.
OverheadKumpara mas mababa sa itaas.Comparatively more overhead dahil kailangan nitong mapanatili ang pagkakasunud-sunod ng mga entry sa mapa.


Kahulugan ng HashMap

Ang HashMap ay isang klase na ginagamit upang lumikha ng isang mapa. Nagpapatupad ito Map Interface. Pinalawak din nito ang AbstractMap klase upang maaari itong gumamit ng isang hash table upang maimbak ang mga entry sa mapa. Ang mga entry ng mapa ay a pares kung saan ang bawat susi ay nauugnay sa halaga. Ang susi sa entry ay ginagamit para makuha ang halaga samakatuwid, ang susi ay dapat na natatangi. Iyon ang dahilan kung bakit hindi pinapayagan ang dobleng mga susi sa HashMap. Ngunit ang susi sa bawat pagpasok ng mapa ay maaaring may iba't ibang uri i.e. ang mga susi sa mapa na nilikha ng HashMap ay maaaring maging heterogenous. Ang istraktura ng data na ginamit ng HashMap upang mag-imbak ng isang mapa ay isang talahanayan ng hash.

Ang pagpasok ng order ng mga entry sa HashMap ay hindi mapangalagaan. Ang pagpasok ng mga entry sa mapa na nilikha gamit ang HashMap ay batay sa hash code na kinakalkula ng mga key sa mga entry. Kung sa pagkakamali ay nagpasok ka ng isang dobleng susi sa HashMap, papalitan nito ang nakaraang halaga ng susi na iyon gamit ang bagong halaga na iminungkahi at ibabalik ang dating halaga. Kung walang dobleng key na ginamit at walang naganap na kapalit, palaging ibabalik ang susi kay Null. Tingnan natin kung paano idagdag ang mga entry sa hash map na may mga sumusunod na halimbawa.


Hashmap hm = bagong Hashmap (); hm.put ("Ajay", 275); hm.put ("Vijay", 250); hm.put ("Jonny", 150); hm.put ("Jordan", 200); System.out.ln (hm); / * output * / {Vijay = 250, Jonny = 150, Ajay = 275, Jordan = 200}

Tulad ng nasa itaas na code, maaari mong makita na nilikha ko ang isang object ng HashMap at idinagdag ang mga entry gamit ang pamamaraan ng paglalagay at kapag na-edit ko ang bagay na HashMap, ang mga entry ay hindi na-ed sa pagkakasunud-sunod na naipasok nila. Samakatuwid, hindi mo maaaring magpanggap ang pagkakasunud-sunod ng mga entry sa HashMap ay babalik. Ginagamit ng HashMap ang lahat ng mga pamamaraan ng interface ng Map at klase ng AbstractMap at hindi ipinakilala ang anumang bagong pamamaraan; mayroon itong sariling konstruksyon. Ang default na kapasidad ng hash map ay 16 at default na ratio ng punan ay 0.75.

Kahulugan ng Naka-linkHashMap

Ang LinkHashMap ay ginagamit din ng klase upang lumikha ng isang mapa. Ang LinkHashMap ay nagpapalawak ng HashMap klase at ipinakilala mamaya sa HashMap sa JDK bersyon 4.0. Ang pagiging klase ng bata ng klase ng HashMap na LinkHashMap ay eksaktong pareho sa klase ng HashMap kabilang ang mga tagapagtayo at pamamaraan. Ngunit, naiiba ang LinkHashMap sa isang kahulugan na pinapanatili nito ang pagkakasunud-sunod ng pagpasok ng mga entry sa mapa. Ang istraktura ng data na ginagamit ng LinkHashMap upang maimbak ang mapa ay naka-link na listahan at hash table.

Bilang karagdagan sa mga pamamaraan na minana ng HashMap, ipinakilala ng LinkHashMap ang isang bagong pamamaraan na alisinEEstestEntry (). Ang pamamaraang ito ay ginagamit upang alisin ang pinakalumang pagpasok sa mapa. Ang default na kapasidad ng linkedHashMap ay 16, at ang default na ratio ng punan ay 0.75 na katulad din sa klase ng HashMap.

  1. Ang pinakamahalagang pagkakaiba ay ang pagkakasunud-sunod ng pagpasok ng HashMap ay hindi mapangalagaan samantalang, ang pagkakasunud-sunod ng insertion ng LinkHashMap ay napanatili.
  2. Ang istraktura ng data na ginamit ng HashMap upang maimbak ang mga elemento ng mapa ay Hinahangaan. Sa kabilang banda, ang istraktura ng data na ginamit ng LinkHashMap ay Naka-link na listahan at Hinahangaan.
  3. Ang klase ng HashMap ay umaabot AbstractMap klase at ipinatutupad ang Map interface. Gayunpaman, ang klase ng LinkHashMap ay isang klase ng bata ng HashMap klase i.e. Ang klase na naka-linkHashMap ay nagpapalawak ng klase ng HashMap.
  4. Ang klase ng HashMap ay ipinakilala sa JDK 2.0 bersyon. Ang klase na LinkHashMap ay ipinakilala mamaya JDK 4.0 bersyon.
  5. Ang paghahambing na uri ng ClassicalHashMap ay may higit na overhead kaysa sa HashMap dahil kailangan nitong mapanatili ang pagkakasunud-sunod ng mga elemento na ipinasok sa mapa.

Konklusyon:

Ang LinkHashMap ay dapat gamitin lamang kung saan kami ay nag-aalala tungkol sa pagkakasunud-sunod ng mga elemento na naipasok sa mapa.