Skillnaden mellan HashMap och LinkedHashMap i Java

Författare: Laura McKinney
Skapelsedatum: 2 April 2021
Uppdatera Datum: 9 Maj 2024
Anonim
Computational Linguistics, by Lucas Freitas
Video: Computational Linguistics, by Lucas Freitas

Innehåll


HashMap och LinkedHashMap är klasserna, ganska lika varandra och används för att skapa en karta. HashMap-klassen utökar klassen AbstractMap för att använda en hashtabell för att lagra elementen på kartan. LinkedHashMap-klassen behåller posten på kartan baserat på deras införingsordning. Funktionen som skiljer HashMap och LinkedHashMap från varandra är den HashMap upprätthåller inte ordningen för de lagrade posterna på en karta. Å andra sidan, LinkedHashMap använder en hybriddatastruktur för att bibehålla ordningen på poster i vilka de sattes in. I jämförelsetabellen nedan utforskade jag några andra skillnader mellan HashMap och LinkedHashMap bara titta.

  1. Jämförelsediagram
  2. Definition
  3. Viktiga skillnader
  4. Slutsats

Jämförelsediagram

Grund för jämförelseHashMapLinkedHashMap
GrundläggandeInsättningsorder i HashMap bevaras inte.Insättningsordern bevaras i LinkedHashMap.
DatastrukturHashMap använder HashTable för att lagra kartor.LinkedHashMap använder HashTable tillsammans med Linked List för att lagra kartan.
Sträcker / RedskapHashMap utökar AbstractMap och implementerar kartgränssnitt.LinkedHashMap utökar Hashmap.
VersionHashMap introducerades i JDK 2.0.LinkedHashMap introducerades i JDK 4.0.
Över huvudetRelativt mindre overhead.Förhållandevis mer overhead eftersom det måste bibehålla ordningen på kartposterna.


Definition av HashMap

HashMap är en klass som används för att skapa en karta. Det implementeras Karta Gränssnitt. Det utökar också AbstractMap klass så att den kan använda en hashtabell för att lagra posten på kartan. Inlägg på kartan är en par där varje nyckel är associerad med värdet. Nyckeln i posten används för att hämta värdet, därför måste nyckeln vara unik. Det är därför dubbla nycklar inte är tillåtna i HashMap. Men nyckeln i varje post på kartan kan ha olika typer, dvs nycklarna på kartan som skapas av HashMap kan vara heterogena. Datastrukturen som HashMap använder för att lagra en karta är en hashtabell.

Införingsordningen för posterna i HashMap bevaras inte. Införandet av poster på kartan som skapats med HashMap baseras på hashkoden beräknad av tangenterna i posterna. Om du av misstag skrev in en duplikatnyckel i HashMap, kommer den att ersätta det tidigare värdet för den nyckeln med det nya föreslagna värdet och returnerar det gamla värdet. Om ingen duplikatnyckel används och ingen ersättning har skett, returnerar alltid tangenten Null. Låt oss se hur man lägger till posten på haschkartan med följande exempel.


Hashmap hm = new Hashmap (); hm.put ("Ajay", 275); hm.put ("Vijay", 250); hm.put ("Jonny", 150); hm.put ("Jordanien", 200); System.out.ln (hm); / * utgång * / {Vijay = 250, Jonny = 150, Ajay = 275, Jordanien = 200}

Liksom i ovanstående kod kan du se att jag skapade ett objekt med HashMap och lägger till posten med put-metoden och när jag redigerade HashMap-objektet redigeras inte posten i den ordning de sattes in. Därför kan du inte låtsas ordningen för posten i HashMap kommer att återgå. HashMap använder alla metoder för kartgränssnitt och klassen AbstractMap och introducerar ingen ny metod; det har sina egna konstruktörer. Standardkapaciteten för haschkartan är 16 och standardfyllningsgraden är 0.75.

Definition av LinkedHashMap

LinkedHashMap är också en klassanvändning för att skapa en karta. LinkedHashMap utökar HashMap klass och introducerades senare till HashMap i JDK version 4.0. Att vara barnklassen i HashMap-klassen LinkedHashMap är exakt samma som HashMap-klassen inklusive konstruktörer och metoder. Men LinkedHashMap skiljer sig i en mening att det upprätthåller ordningen för införandet av posten på kartan. Datastrukturen som används av LinkedHashMap för att lagra kartan är länkad lista och hashbord.

Förutom de metoder som ärvts av HashMap introducerar LinkedHashMap en ny metod som är ta bortEldestEntry (). Den här metoden används för att ta bort den äldsta posten på kartan. Standardkapaciteten för LinkedHashMap är 16 och standardfyllningsförhållandet är 0,75, vilket också liknar HashMap-klassen.

  1. Den viktigaste skillnaden är att införandet av HashMap är inte bevarad Inställningsordningen för LinkedHashMap är bevarad.
  2. Datastrukturen som HashMap använder för att lagra kartans element är Hashtable. Å andra sidan är datastrukturen som används av LinkedHashMap Länkad lista och Hashtable.
  3. HashMap-klassen förlängs AbstractMap klass och implementerar Karta gränssnitt. Men LinkedHashMap-klassen är en barnklass av HashMap klass, dvs LinkedHashMap-klassen förlänger HashMap-klassen.
  4. HashMap-klassen introducerades i JDK 2.0 version. Klassen LinkedHashMap introducerades senare i JDK 4.0 version.
  5. Relativt LinkedHashMap-klassen har mer omkostnader än HashMap eftersom det måste upprätthålla ordningen för elementen som är infogade på kartan.

Slutsats:

LinkedHashMap får endast användas när vi är oroliga över sekvensen för elementen som är infogade på kartan.