Skillnaden mellan HashMap och TreeMap i Java
Innehåll
HashMap och TreeMap är kartklasserna och båda implementerar kartgränssnittet. Map är ett objekt som lagrar nyckelvärdenspar, där varje nyckel är unik och men det kan finnas duplicerade värden. HashMap-klassen använder hash-tabellen som en datastruktur. TreeMap använder det röd-svarta trädet som en datastruktur. Den största skillnaden mellan HashMap och Treemap är att HashMap inte bevarar införingsordningen medan TreeMap gör.
Så låt oss börja vår diskussion om skillnaderna mellan HashMap och TreeMap med hjälp av jämförelsetabellen nedan.
- Jämförelsediagram
- Definition
- Viktiga skillnader
- Slutsats
Jämförelsediagram
Grund för jämförelse | HashMap | TreeMap |
---|---|---|
Grundläggande | HashMap upprätthåller inte införingsordningen. | TreeMap upprätthåller införingsordningen. |
Datastruktur | HashMap använder Hash-tabellen som en underliggande datastruktur. | TreeMap använder röd-svart träd som en underliggande datastruktur. |
Nolltangenter och värden | HashMap tillåter Null-nyckel en gång annonsen Nollvärde valfritt antal gånger. | TreeMap tillåter inte Null-nyckeln men tillåter Nullvärden vilket antal gånger som helst. |
Förlänger och implementerar | HashMap utökar klassen AbstractMap och implementerar kartgränssnitt. | TreeMap utökar klassen AbstractMap och implementerar gränssnittet SortedMap och NavigableMap. |
Prestanda | HashMap fungerar snabbare. | TreeMap jämförs med HashMap fungerar långsammare. |
Definition av HashMap
HashMap är en kartklass. Den använder hashbord, som en datastruktur för att lagra kartans nyckelvärdespar. Införandet av ett nyckelvärdespar görs med hjälp av hash-kod av nycklar. Därför måste varje nyckel på kartan vara unik eftersom den kommer att användas för att hämta värdena.
Infogningsordningen i HashMap är inte bevaras vilket innebär att hashmap-objektet inte returnerar elementen i den ordning de sattes in. Å andra sidan är ordningen i vilken elementen kommer att returneras inte fast.
De nyckel är tillåtet att vara det NULL på en gång, men värden kan vara NULL när som helst. HashMap kan innehålla heterogena objekt för nycklar och värden.
Det finns fyra konstruktörer av HashMap:
HashMap () HashMap (Map m) HashMap (int-kapacitet), HashMap (int-kapacitet, float fillRatio)
De först konstruktören skapar det tomma objektet från HashMap. De andra konstruktör initierar HashMap med hjälp av element i Map m. De tredje konstruktör initierar HashMap med kapaciteten som anges i argumentet. De fjärde konstruktör initierar kapaciteten såväl som fyllningsförhållandet för HashMap-objektet.
Standarden kapacitet av HashMap är 16och standard fyllningsförhållande av HashMap är 0.75.
Definition av TreeMap
Som HashMap, TreeMap är också en kartklass. TreeMap utökas AbstractMap klass och redskap NavigabelMap och SortedMap. TreeMap-objekten lagrar kartelementen i trädstrukturen. Datastrukturen som används för att lagra kartan är Röd-svart träd.
TreeMap lagrar nyckelvärdesparet i den sorterade ordningen som hjälper till att snabbt hämta elementen. TreeMap-objektet returnerar elementen i sorterad (stigande) beställa.
Det finns fyra konstruktörer av TreeMap:
TreeMap () TreeMap (Comparator <? Super K> comp) TreeMap (Map <? Sträcker sig K,? Sträcker sig V> m) TreeMap (SortedMap De först konstruktörer skapar ett tomt objekt från TreeMap som skulle sorteras i naturlig ordning dess nycklar. De andra konstruktören skapar en tom trädkarta som kommer att sorteras efter Jämförelse cmp. De tredje konstruktorn ovan skapar en trekarta som kommer att initialiseras med poster av Karta m. De fjärde konstruktören kommer att skapa en trekarta som kommer att initialiseras med hjälp av uppgifterna till SortedMap sm. Treemap har ingen egen metod, den använder metoden för gränssnittet NavigableMap och SortedMap och klassen AbstractMap. TreeMap ska endast användas när du behöver nyckelvärdespar i sorterad form. Eftersom sortering inkluderar prestandakostnader. HashMap som är osynkroniserad fungerar snabbare.
Slutsats: