Skillnaden mellan HashMap och LinkedHashMap i Java
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.
- Jämförelsediagram
- Definition
- Viktiga skillnader
- Slutsats
Jämförelsediagram
Grund för jämförelse | HashMap | LinkedHashMap |
---|---|---|
Grundläggande | Insättningsorder i HashMap bevaras inte. | Insättningsordern bevaras i LinkedHashMap. |
Datastruktur | HashMap använder HashTable för att lagra kartor. | LinkedHashMap använder HashTable tillsammans med Linked List för att lagra kartan. |
Sträcker / Redskap | HashMap utökar AbstractMap och implementerar kartgränssnitt. | LinkedHashMap utökar Hashmap. |
Version | HashMap introducerades i JDK 2.0. | LinkedHashMap introducerades i JDK 4.0. |
Över huvudet | Relativt 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 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. 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.
Definition av LinkedHashMap
- Den viktigaste skillnaden är att införandet av HashMap är inte bevarad Inställningsordningen för LinkedHashMap är bevarad.
- 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.
- 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.
- HashMap-klassen introducerades i JDK 2.0 version. Klassen LinkedHashMap introducerades senare i JDK 4.0 version.
- 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.