Forskellen mellem HashMap og TreeMap i Java

Forfatter: Laura McKinney
Oprettelsesdato: 2 April 2021
Opdateringsdato: 18 Kan 2024
Anonim
Forskellen mellem HashMap og TreeMap i Java - Teknologi
Forskellen mellem HashMap og TreeMap i Java - Teknologi

Indhold


HashMap og TreeMap er kortklasserne og begge implementerer Map-interface. Kort er et objekt, der gemmer nøgleværdipar, hvor hver nøgle er unik, men der kan være duplikatværdier. HashMap-klassen bruger hash-tabellen som en datastruktur. TreeMap bruger det rød-sorte træ som en datastruktur. Den største forskel mellem HashMap og Treemap er, at HashMap bevarer ikke indsættelsesordren, hvorimod Treemap gør.

Så lad os begynde vores diskussion om forskellene mellem HashMap og TreeMap ved hjælp af sammenligningstabellen nedenfor.

  1. Sammenligningstabel
  2. Definition
  3. Vigtige forskelle
  4. Konklusion

Sammenligningstabel

Grundlag for sammenligningHashMapTreeMap
Grundlæggende HashMap opretholder ikke indsættelsesrækkefølge.TreeMap opretholder indsættelsesrækkefølge.
datastrukturenHashMap bruger Hash-tabel som en underliggende datastruktur.TreeMap bruger rød-sort træ som en underliggende datastruktur.
Nul taster og værdier HashMap tillader Null-nøgle en gang annonce Null-værdi et hvilket som helst antal tid.TreeMap tillader ikke Null-nøgle, men tillader Nul-værdier et hvilket som helst antal tid.
Udvider og implementererHashMap udvider AbstractMap-klassen og implementerer Map-interface.TreeMap udvider AbstractMap-klassen og implementerer SortedMap- og NavigableMap-interface.
YdeevneHashMap fungerer hurtigere.TreeMap i sammenligning med HashMap fungerer langsommere.


Definition af HashMap

HashMap er en kortklasse. Den bruger hash bord, som en datastruktur til at gemme kortets nøgleværdipar. Indsættelse af nøgleværdipar foretages ved hjælp af hash-kode af nøgler. Derfor skal hver nøgle på kortet være unik, da den vil blive brugt til at hente værdierne.

Indsætningsordren i HashMap er ikke bevaret, hvilket betyder, at hashmap-objektet ikke returnerer elementerne i den rækkefølge, de blev indsat. På den anden side er rækkefølgen, hvor elementerne returneres ikke fast.

Det nøgle er tilladt at være NUL på én gang, men værdier måske NUL til enhver tid. HashMap kan indeholde heterogen objekter til nøgler såvel som værdier.


Der er fire konstruktører af HashMap:

HashMap () HashMap (Kort m) HashMap (int-kapacitet), HashMap (int-kapacitet, float fillRatio)

Det først konstruktør opretter det tomme objekt fra HashMap. Det anden konstruktør initialiserer HashMap ved hjælp af elementer fra Map m. Det tredje konstruktør initialiserer HashMap med den kapacitet, der er angivet i argumentet. Det fjerde konstruktør initialiserer kapaciteten såvel som udfyldningsforholdet for HashMap-objektet.

Standardindstillingen kapacitet af HashMap er 16, og standardindstillingen udfyldningsforhold af HashMap er 0.75.

Definition af TreeMap

Som HashMap, TreeMap er også en kortklasse. TreeMap udvides AbstractMap klasse og redskaber NavigabelMap og SortedMap. TreeMap-objekterne gemmer kortelementerne i træstrukturen. Den datastruktur, der bruges til lagring af kortet, er Rød-sort træ.

TreeMap gemmer nøgleværdiparret i den sorterede rækkefølge, som hjælper med hurtigt at hente elementerne. TreeMap-objektet returnerer elementerne i sorterede (opstigende) ordre.

Der er fire konstruktører af TreeMap:

TreeMap () TreeMap (Comparator <? Super K> comp) TreeMap (Map <? Strækker sig K,? Strækker sig V> m) TreeMap (SortedMap sm)

Det først konstruktører opretter et tomt objekt fra TreeMap, der ville blive sorteret i naturlig rækkefølge dens nøgler. Det anden konstruktør opretter et tomt trækort, der sorteres efter Comparator cmp. Det tredje konstruktøren ovenfor opretter et treemap, der initialiseres ved hjælp af poster i Kort m. Det fjerde konstruktør opretter et trekort, der initialiseres ved hjælp af indtastningerne i SortedMap sm.

Treemap har ikke nogen ny metode, det bruger metoden til interface NavigableMap og SortedMap og AbstractMap klassen.

  1. Begge klasser bruges til at oprette kortobjekter, men den grundlæggende forskel mellem HashMap og Treemap er, at HashMap ikke opretholder indsættelsesrækkefølge, mens Treemap gør det.
  2. Den datastruktur, der bruges af Hashmap til at gemme kortelementer, er hash-tabellen, og den datastruktur, der bruges af TreeMap til at gemme kortelementerne, er det rød-sorte træ.
  3. Både klasser Hashmap og Treemap udvider klassen AbstractMap, men HashMap klassen implementerer Map interface og TreeMap implementerer NavigableMap og SortedMap interface.
  4. Værdierne kan være Nul et hvilket som helst antal gange i begge, men nøglen må kun være Nul én gang i HashMap, og en nøgle kan aldrig være i Treemap.
  5. Ydelsen af ​​HashMap er hurtigere, det spilder ikke tid på at sortere kortelementerne, som TreeMap gør. Derfor fungerer TreeMap langsommere end HashMap.

Konklusion:

TreeMap bør kun bruges, når du har brug for nøgleværdipar i sorteret form. Da sortering inkluderer ydelsesomkostninger. HashMap, der er usynkroniseret, fungerer hurtigere.