Forskjellen mellom HashMap og TreeMap i Java

Forfatter: Laura McKinney
Opprettelsesdato: 2 April 2021
Oppdater Dato: 11 Kan 2024
Anonim
Рефакторинг: switch vs if-else vs enum vs HashMap [Шаблон "Команда"]
Video: Рефакторинг: switch vs if-else vs enum vs HashMap [Шаблон "Команда"]

Innhold


HashMap og TreeMap er kartklassene, og begge implementerer kartgrensesnittet. Kart er et objekt som lagrer nøkkelverdipar, der hver nøkkel er unik og men det kan være dupliserte verdier. HashMap-klassen bruker hasjetabellen som en datastruktur. TreeMap bruker det rød-svarte treet som datastruktur. Den viktigste forskjellen mellom HashMap og Treemap er at HashMap bevarer ikke innføringsrekkefølgen mens, TreeMap gjør.

Så la oss begynne diskusjonen vår om forskjellene mellom HashMap og TreeMap ved hjelp av sammenligningstabellen nedenfor.

  1. Sammenligningstabell
  2. Definisjon
  3. Viktige forskjeller
  4. Konklusjon

Sammenligningstabell

Grunnlag for sammenligningHashMapTreeMap
grunn~~POS=TRUNC HashMap opprettholder ikke innsettingsrekkefølge.TreeMap opprettholder innføringsrekkefølgen.
Data strukturHashMap bruker Hash Table som en underliggende datastruktur.TreeMap bruker rød-svart tre som en underliggende datastruktur.
Nulltaster og verdier HashMap lar Null-tast én gang annonse Null verdi et hvilket som helst antall tid.TreeMap tillater ikke nulltast, men tillater nullverdier et hvilket som helst antall tid.
Utvider og implementererHashMap utvider AbstractMap-klassen og implementerer kartgrensesnitt.TreeMap utvider AbstractMap-klassen og implementerer SortedMap og NavigableMap-grensesnittet.
OpptredenHashMap fungerer raskere.TreeMap i forhold til HashMap fungerer tregere.


Definisjon av HashMap

HashMap er en kartklasse. Den bruker hasjbord, som en datastruktur for å lagre kartets nøkkelverdipar. Innsettingen av et nøkkelverdipar gjøres ved å bruke hasjkode av nøkler. Derfor må hver tast på kartet være unik, da den vil bli brukt til å hente verdiene.

Innsettingsrekkefølgen i HashMap er ikke bevart, noe som betyr at hashmap-objektet ikke returnerer elementene i den rekkefølgen de ble satt inn. På den annen side er ikke rekkefølgen elementene skal returneres.

De nøkkel har lov til å være det NULL på en gang, men verdier kan være NULL til enhver tid. HashMap kan inneholde heterogen objekter for nøkler samt verdier.

Det er fire konstruktører av HashMap:


HashMap () HashMap (Map m) HashMap (int-kapasitet), HashMap (int-kapasitet, float fillRatio)

De først konstruktør lager det tomme objektet fra HashMap. De sekund konstruktør initialiserer HashMap ved hjelp av elementer fra Map m. De tredje konstruktør initialiserer HashMap med kapasiteten gitt i argumentet. De fjerde konstruktør initialiserer kapasiteten så vel som fyllingsforholdet til HashMap-objektet.

Standaren kapasitet av HashMap er 16, og standardinnstillingen fyllingsforhold av HashMap er 0.75.

Definisjon av TreeMap

Som HashMap, TreeMap er også en kartklasse. TreeMap utvides AbstractMap klasse og redskaper NavigabelMap og SortedMap. TreeMap-objektene lagrer kartelementene i trestrukturen. Datastrukturen som brukes til lagring av kartet er Rød-svart tre.

TreeMap lagrer nøkkelverdiparet i sortert rekkefølge som hjelper til med hurtig gjenfinning av elementene. TreeMap-objektet returnerer elementene i sorterte (stigende) rekkefølge.

Det er fire konstruktører av TreeMap:

TreeMap () TreeMap (Comparator <? Super K> comp) TreeMap (Map <? Utvider K,? Utvider V> m) TreeMap (SortedMap sm)

De først konstruktører lager et tomt objekt av TreeMap som ville bli sortert i naturlig rekkefølge dens nøkler. De sekund konstruktør vil opprette et tomt trekart som vil bli sortert etter Sammenligning cmp. De tredje konstruktøren ovenfor vil opprette et trekart som vil bli initialisert ved hjelp av oppføringer av Kart m. De fjerde konstruktør vil opprette et trekart som vil bli initialisert ved hjelp av oppføringene til SortedMap sm.

Trekart har ikke noen egen metode, det bruker metoden for grensesnitt NavigableMap og SortedMap og AbstractMap klassen.

  1. Begge klassene brukes til å lage kartobjekter, men den grunnleggende forskjellen mellom HashMap og Treemap er at HashMap ikke opprettholder innsettingsrekkefølge mens Treemap gjør det.
  2. Datastrukturen som brukes av Hashmap for å lagre kartelementer er hasjtabellen og datastrukturen som brukes av TreeMap for å lagre kartelementene er det rød-svarte treet.
  3. Både klassene Hashmap og Treemap utvider AbstractMap-klassen, men HashMap-klassen implementerer Kart-grensesnittet og TreeMap implementerer NavigableMap og SortedMap-grensesnittet.
  4. Verdiene kan være null når som helst i begge deler, men nøkkelen tillates å være null bare en gang i HashMap, og en nøkkel kan aldri være i trekart.
  5. Ytelsen til HashMap er raskere, den kaster ikke bort tid på å sortere kartelementene slik TreeMap gjør. TreeMap presterer derfor saktere enn HashMap.

Konklusjon:

TreeMap skal bare brukes når du trenger nøkkelverdipar i sortert form. Ettersom sortering inkluderer ytelseskostnader. HashMap som blir usynkronisert fungerer raskere.