Razlika med Java in HashMap ter LinkedHashMap

Avtor: Laura McKinney
Datum Ustvarjanja: 2 April 2021
Datum Posodobitve: 10 Maj 2024
Anonim
Razlika med Java in HashMap ter LinkedHashMap - Tehnologija
Razlika med Java in HashMap ter LinkedHashMap - Tehnologija

Vsebina


HashMap in LinkedHashMap sta razreda, ki sta si med seboj precej podobna in se uporabljata za ustvarjanje zemljevida. HashMap razred razširi razred AbstractMap in uporabi hash tabelo za shranjevanje elementov na zemljevidu. Razred LinkedHashMap vzdržuje vnose na zemljevidu glede na vrstni red vstavljanja. Značilnost, ki razlikuje HashMap in LinkedHashMap drug od drugega, je to Hashmap ne vzdržuje vrstnega reda shranjenih vnosov na zemljevidu. Po drugi strani, LinkedHashMap uporablja hibridno strukturo podatkov za vzdrževanje vrstnega reda vnosov, v katere so bili vstavljeni. V spodnji primerjalni tabeli sem raziskal nekatere druge razlike med HashMapom in LinkedHashMapom samo poglejte.

  1. Primerjalna tabela
  2. Opredelitev
  3. Ključne razlike
  4. Zaključek

Primerjalna tabela

Osnove za primerjavoHashMapLinkedHashMap
OsnovniVrstni red vstavitve v HashMap ni ohranjen.Vrstni red vstavitve je ohranjen v LinkedHashMap-u.
Struktura podatkovHashMap uporablja HashTable za shranjevanje zemljevidov.LinkedHashMap uporablja HashTable skupaj s povezanim seznamom za shranjevanje zemljevida.
Razširitve / IzvedbeHashMap razširja AbstractMap in izvaja vmesnik Map.LinkedHashMap podaljša Hashmap.
RazličicaHashMap je bil predstavljen v JDK 2.0.LinkedHashMap je bil predstavljen v JDK 4.0.
ZgorajPrimerjalno manj režijskih stroškov.Primerjalno bolj režijski, ker mora vzdrževati vrstni red vnosov na zemljevid.


Opredelitev HashMap-a

HashMap je razred, ki se uporablja za ustvarjanje zemljevida. Izvaja Zemljevid Vmesnik. Razširi tudi AbstractMap razreda, tako da lahko uporablja tabelo tabelo za shranjevanje vnosov na zemljevidu. Vnosi zemljevida so a par, kjer je vsak ključ povezan z vrednostjo. Ključ vnosa se uporablja za pridobivanje vrednosti, zato mora biti ključ en. Zato podvojeni ključi niso dovoljeni v HashMap-u. Toda ključi v vsakem vnosu zemljevida imajo lahko različne vrste, tj. Tipke na zemljevidu, ki jih je ustvaril HashMap, so lahko raznolike. Struktura podatkov, ki jo HashMap uporablja za shranjevanje zemljevida, je hash tabela.

Vrstni red vnosov vnosov v HashMap ni ohranjen. Vstavljanje vnosov v zemljevid, ustvarjen s pomočjo HashMap, temelji na hash kodi, izračunani s ključi v vnosih. Če ste pomotoma v HashMap vnesli podvojeni ključ, bo prejšnja vrednost tega ključa nadomestila z novo predlagano vrednostjo in vrnila staro vrednost. Če se ne uporabi noben podvojeni ključ in če ni prišlo do zamenjave, ključ vedno vrne Null. Poglejmo, kako dodati vnose na zemljevid hash z naslednjim primerom.


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

Kot v zgornji kodi, lahko vidite, da sem ustvaril predmet HashMap in vnose dodal z metodo put in ko urejam objekt HashMap, se vnosi ne urejajo v vrstnem redu, kot so bili vstavljeni. Zato se ne morete pretvarjati, da se bo vrstni red vnosov v HashMap vrnil. HashMap uporablja vse metode vmesnika Map in razreda AbstractMap in ne uvaja nobene nove metode; ima svoje konstruktorje. Privzeta zmogljivost hash map je 16 privzeto razmerje polnjenja je 0.75.

Opredelitev LinkedHashMap-a

LinkedHashMap je tudi razredna uporaba za ustvarjanje zemljevida. LinkedHashMap podaljša HashMap razreda in je bil predstavljen pozneje v HashMap v JDK različici 4.0. LinkedHashMap kot otroški razred razreda HashMap je popolnoma enak razredu HashMap, vključno z konstruktorji in metodami. Toda LinkedHashMap se razlikuje v smislu, da vzdržuje vrstni red vstavljanja vnosov v zemljevid. Struktura podatkov, ki jo LinkedHashMap uporablja za shranjevanje zemljevida, je povezan seznam in hash table.

Poleg metod, ki jih je podedoval HashMap, LinkedHashMap uvaja še eno novo metodo, ki je removeEldestEntry (). Ta metoda se uporablja za odstranitev najstarejšega vnosa na zemljevidu. Privzeta zmogljivost LinkedHashMap je 16, privzeto razmerje polnjenja pa 0,75, kar je podobno razredu HashMap.

  1. Najpomembnejša razlika je, da je vrstni red vstavljanja HashMap ni ohranjen ker je vrstni red LinkedHashMap vstavljen ohranjena.
  2. Podatkovna struktura, ki jo HashMap uporablja za shranjevanje elementov zemljevida, je Hashtable. Po drugi strani je podatkovna struktura, ki jo uporablja LinkedHashMap Povezani seznam in Hashtable.
  3. Razširja se razred HashMap AbstractMap razreda in izvaja Zemljevid vmesnik. Vendar pa je razred LinkedHashMap otroški razred HashMap razred, tj. razred LinkedHashMap razširja razred HashMap.
  4. HashMap razred je bil predstavljen v JDK 2.0 različico. Razred LinkedHashMap je bil predstavljen kasneje v JDK 4.0 različico.
  5. Primerjalno LinkedHashMap ima več režijskih stroškov kot HashMap, saj mora vzdrževati vrstni red elementov, vstavljenih na zemljevid.

Zaključek:

LinkedHashMap je treba uporabljati samo, kadar nas skrbi zaporedje elementov, vstavljenih na zemljevid.