Skillnaden mellan HashMap och TreeMap i Java

Författare: Laura McKinney
Skapelsedatum: 2 April 2021
Uppdatera Datum: 14 Maj 2024
Anonim
Review: Quiz 0
Video: Review: Quiz 0

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.

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

Jämförelsediagram

Grund för jämförelseHashMapTreeMap
Grundläggande HashMap upprätthåller inte införingsordningen.TreeMap upprätthåller införingsordningen.
DatastrukturHashMap 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 implementerarHashMap utökar klassen AbstractMap och implementerar kartgränssnitt.TreeMap utökar klassen AbstractMap och implementerar gränssnittet SortedMap och NavigableMap.
PrestandaHashMap 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 sm)

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.

  1. Båda klasserna används för att skapa kartobjekt, men den grundläggande skillnaden mellan HashMap och Treemap är att HashMap inte upprätthåller införingsordning medan Treemap gör det.
  2. Datastrukturen som Hashmap använder för att lagra kartelement är hashtabellen och datastrukturen som används av TreeMap för att lagra kartelementen är det röd-svarta trädet.
  3. Både klasserna Hashmap och Treemap utökar klassen AbstractMap, men klassen HashMap implementerar kartgränssnittet och TreeMap implementerar NavigableMap och SortedMap-gränssnittet.
  4. Värdena kan vara Noll valfritt antal gånger i båda men nyckeln får endast vara Null en gång i HashMap och en nyckel kan aldrig finnas i Treemap.
  5. Prestanda för HashMap är snabbare, det slösar inte tid på att sortera kartelementen som TreeMap gör. Därför presterar TreeMap långsammare än HashMap.

Slutsats:

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.