Pagkakaiba sa pagitan ng HashMap at naka-linkHashMap sa Java
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.
- Tsart ng paghahambing
- Kahulugan
- Pangunahing Pagkakaiba
- Konklusyon
Tsart ng paghahambing
Batayan para sa Paghahambing | HashMap | Naka-linkHashMap |
---|---|---|
Pangunahing | Ang pagkakasunud-sunod ng pagsingit sa HashMap ay hindi mapangalagaan. | Ang pagkakasunud-sunod ng pagsingit ay napanatili sa LinkHashMap. |
Istraktura ng Data | Ginagamit 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 / Pagpapatupad | Ang HashMap ay nagpapalawak ng AbstractMap at nagpapatupad ng interface ng Map. | Ang LinkHashMap ay nagpapalawak ng Hashmap. |
Bersyon | Ang HashMap ay ipinakilala sa JDK 2.0. | Ang LinkHashMap ay ipinakilala sa JDK 4.0. |
Overhead | Kumpara 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 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. 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.
Kahulugan ng Naka-linkHashMap
- Ang pinakamahalagang pagkakaiba ay ang pagkakasunud-sunod ng pagpasok ng HashMap ay hindi mapangalagaan samantalang, ang pagkakasunud-sunod ng insertion ng LinkHashMap ay napanatili.
- 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.
- 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.
- Ang klase ng HashMap ay ipinakilala sa JDK 2.0 bersyon. Ang klase na LinkHashMap ay ipinakilala mamaya JDK 4.0 bersyon.
- 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.