Ajánlott, 2024

Szerkesztő Választása

Különbség a HashMap és a LinkedHashMap között Java-ban

A HashMap és a LinkedHashMap az osztályok, amelyek nagyon hasonlítanak egymáshoz, és a térkép létrehozásához használatosak. A HashMap osztály kiterjeszti az AbstractMap osztályt, hogy hash táblázatot használjon az elemek elemzéséhez a térképen. A LinkedHashMap osztály a beillesztési sorrend alapján tartja a térképen lévő bejegyzéseket. A HashMap és a LinkedHashMap egymástól megkülönböztető funkciója, hogy a Hashmap nem tartja meg a térképen tárolt bejegyzések sorrendjét. Másrészről a LinkedHashMap egy hibrid adatstruktúrát használ a bejegyzések sorrendjének fenntartásához. Az alábbi összehasonlító táblázatban a HashMap és a LinkedHashMap közötti különbségeket is megvizsgáltam.

Összehasonlító táblázat

Az összehasonlítás alapjaHashMapLinkedHashMap
AlapvetőA HashMap beillesztési sorrendje nem marad meg.A beillesztési sorrend a LinkedHashMap-ban megmarad.
AdatszerkezetA HashMap a HashTable-ot használja a térképek tárolására.A LinkedHashMap a HashTable-ot és a Linked List-ot használja a térkép tárolásához.
Kiterjeszti / MunkagépekA HashMap kiterjeszti az AbstractMap alkalmazást és végrehajtja a Map felületét.A LinkedHashMap kiterjeszti a Hashmap-ot.
VáltozatA HashMap a JDK 2.0-ban került bevezetésre.A LinkedHashMap a JDK 4.0-ban került bevezetésre.
FelsőÖsszehasonlítva kevésbé rezsi.Összehasonlítva a többletköltség, mert meg kell őriznie a térképbejegyzések sorrendjét.

A HashMap meghatározása

A HashMap egy osztály, amelyet egy térkép létrehozására használnak. A Map Interface-et hajtja végre. Ezenkívül kiterjeszti az AbstractMap osztályt, hogy hash táblázattal tárolhassa a bejegyzéseket a térképen. A térkép bejegyzései egy pár, ahol minden kulcs hozzá van rendelve az értékhez. A bejegyzés kulcsát az érték lekérésére használják, ezért a kulcsnak egyedinek kell lennie. Ezért a HashMap-ban nem engedélyezettek az ismétlődő kulcsok. A térkép minden egyes bejegyzésének kulcsa azonban eltérő lehet, azaz a HashMap által létrehozott térkép kulcsai heterogének lehetnek. A HashMap által a térkép tárolására használt adatszerkezet hash tábla.

A HashMap-ben lévő bejegyzések beillesztési sorrendje nem marad meg. A HashMap használatával létrehozott térképek beillesztése a bejegyzésben szereplő gombok által kiszámított hash kódon alapul. Ha véletlenül beírta a HashMap-ba egy ismétlődő kulcsot, akkor a kulcs korábbi értékét a javasolt új értékkel helyettesíti, és visszaadja a régi értéket. Ha nem használ kettős kulcsot, és nincs helyettesítés, a kulcs mindig Null-ot ad vissza. Lássuk, hogyan kell hozzáadni a bejegyzéseket a hash térképhez a következő példával.

 Hashmap hm = új Hashmap (); hm.put ("Ajay", 275); hm.put ("Vijay", 250); hm.put ("Jonny", 150); hm.put ("Jordan", 200); System.out.println (hm); / * kimenet * / {Vijay = 250, Jonny = 150, Ajay = 275, Jordánia = 200} 

A fenti kódhoz hasonlóan láthatjuk, hogy létrehoztam egy HashMap objektumot, és hozzáadtam a bejegyzéseket a puts módszerrel, és amikor a HashMap objektumot kinyomtattam, a bejegyzések nem kerülnek nyomtatásra a beillesztett sorrendben. Ennélfogva nem tehetjük meg, hogy a HashMap bejegyzéseinek sorrendje visszatér. A HashMap a Map interfész és az AbstractMap osztály összes módját használja, és nem vezet be új módszert; saját építője van. A hash térkép alapértelmezett kapacitása 16 és az alapértelmezett kitöltési arány 0, 75 .

A LinkedHashMap meghatározása

A LinkedHashMap egy osztályhasználat is egy térkép létrehozásához. A LinkedHashMap kiterjeszti a HashMap osztályt, és később a HashMap-ba vitték be a JDK 4.0 verziójában. A HashMap osztály gyermekosztálya a LinkedHashMap pontosan ugyanaz, mint a HashMap osztály, beleértve a konstruktorokat és módszereket is. De a LinkedHashMap abban az értelemben különbözik, hogy fenntartja a bejegyzések beillesztésének sorrendjét a térképen. A LinkedHashMap által a térkép tárolásához használt adatszerkezet összekapcsolt lista és hash táblázat .

A HashMap által örökölt módszerek mellett a LinkedHashMap egy új metódusot mutat be, amely eltávolítja azEldestEntry () -t . Ez a módszer a térkép legrégebbi bejegyzésének eltávolítására szolgál. A LinkedHashMap alapértelmezett kapacitása 16, és az alapértelmezett kitöltési arány 0, 75, ami szintén hasonló a HashMap osztályhoz.

Jelentős különbségek a HashMap és a LinkedHashMap között Java-ban

  1. A legfontosabb különbség az, hogy a HashMap beillesztési sorrendje nem marad meg, míg a LinkedHashMap beillesztési sorrendje megmarad .
  2. A HashMap által a térkép elemeinek tárolására használt adatszerkezet Hashtable . Másrészről a LinkedHashMap által használt adatszerkezet összekapcsolt lista és Hashtable.
  3. A HashMap osztály kiterjeszti az AbstractMap osztályt és végrehajtja a Térkép felületet. A LinkedHashMap osztály azonban a HashMap osztály gyermekosztálya, azaz a LinkedHashMap osztály kiterjeszti a HashMap osztályt.
  4. A HashMap osztály bevezetése a JDK 2.0 verzióban történt. A LinkedHashMap osztály később a JDK 4.0 verzióban került bevezetésre.
  5. Összehasonlítóan a LinkedHashMap osztálynak több a feje, mint a HashMap, mivel meg kell őriznie a térképbe helyezett elemek sorrendjét.

Következtetés:

A LinkedHashMap csak akkor használható, ha aggódunk a térképbe helyezett elemek sorrendjében.

Top