Forskellen mellem HashMap og TreeMap

Nøgleforskel - HashMap vs TreeMap
 

I programmeringen er der forskellige mekanismer til indsamling af data. Samlinger er en metode til lagring af data. Programmeringssprog som Java bruger samlinger. Det er en ramme med klasser og grænseflader til lagring og manipulation af et sæt dataelementer. I en normal matrix er der et fast antal elementer, der skal gemmes. Det er en begrænsning af matriser. I stedet kan programmereren bruge samlinger. Handlinger som indsættelse, sletning, sortering og søgning kan udføres ved hjælp af samlinger. I Java hører kortgrænsefladen til samlinger. Kortet bruges til at repræsentere data i nøglen, værdipar. Der er kun unikke nøgler, og hver har en tilsvarende værdi. HashMap og TreeMap er klasser, der implementerer Map-grænsefladen. En HashMap er en kortbaseret samlingsklasse, der bruges til at gemme nøgle- og værdipar, der ikke opretholder en bestemt rækkefølge i dataelementer. En TreeMap er en kortbaseret samlingsklasse, der bruges til at gemme nøgle- og værdipar, der opretholder stigende rækkefølge af dataelementer. Det vigtigste forskel mellem HashMap og TreeMap er det HashMap opretholder ikke en bestemt rækkefølge i dataelementer, mens TreeMap opretholder stigende rækkefølge af dataelementer.

INDHOLD

1. Oversigt og nøgleforskel
2. Hvad er HashMap
3. Hvad er TreeMap
4. Ligheder mellem HashMap og TreeMap
5. Sammenligning side ved side - HashMap vs TreeMap i tabelform
6. Resume

Hvad er HashMap?

HashMap er en klasse, der implementerer kortgrænsefladen. Det udvider klassen AbstractMap og implementerer kortgrænsefladen. En HashMap indeholder nøglen, værdipar. Hvert element er unikt. Det er let at finde elementerne i HashMap ved hjælp af nøglen. At erklære en HashMap er som følger.

public class HashMap udvider AbstractMap redskaber Kort, Cloneable, Serializable

K henviser til nøglen, mens V henviser til den værdi, der svarer til den specifikke nøgle. Hver nøgle, værdipar er en post i HashMap.

Figur 01: Kortgrænseflade

Antag et scenario som følger for at forstå HaspMap. Hvis programmereren der vil gemme et sæt studerende navne og tilsvarende indeksnumre, kan han bruge HashMap. Studentenavne bruges til at finde indeksnumrene. Derfor er studerendes navne nøglerne, mens indeksnumre er værdierne.

Figur 02: HashMap-program ved hjælp af Java

I henhold til ovenstående program oprettes et objekt med HashMap. Derefter kan programmereren tilføje elementer ved hjælp af dette objekt. Værdier kan indsættes ved hjælp af put-metoden. For at hente værdierne skal programmereren bruge get-metoden med nøglen. Når du bruger studentList.get (“150”); det udskriver det tilsvarende navn til det indeks, der er Ann. Hvis programmereren ønsker at få alle værdier, kan han bruge Map.Entry til at udskrive alle taster og værdier. Når man observerer output, kan det ses, at HashMap ikke opretholder en bestemt rækkefølge. Det udskriver ikke elementerne i den indsatte rækkefølge. Elementerne udskrives i en tilfældig rækkefølge.

Hvad er TreeMap?

TreeMap er en klasse i Java, der implementerer Map-grænsefladen. Ligesom med en HashMap, bruges det også til opbevaring af nøgle-, værdipar, men i stigende rækkefølge. TreeMap implementerer NavigableMap og NavigableMap udvider SortedMap og SortedMap extends Map. Hvert element er unikt. At erklære et TreeMap er som følger.

public class TreeMap udvider AbstractMap redskaber NavigableMap, Cloneable, Serializable

K henviser til nøglen, mens V henviser til den værdi, der svarer til den specifikke nøgle. Hver tast, værdipar er en post i TreeMap.

Figur 03: TreeMap-program ved hjælp af Java

I henhold til ovenstående program oprettes et objekt fra TreeMap. Derefter kan programmereren tilføje elementer ved hjælp af dette objekt. Værdier kan indsættes ved hjælp af put-metoden. For at hente værdierne skal programmereren bruge get-metoden med nøglen. Når du bruger studentList.get (“150”); det udskriver det tilsvarende navn til det indeks, der er Ann. Hvis programmereren ønsker at få alle værdier, kan han bruge Map.Entry til at udskrive alle taster og værdier. Når man ser output, kan det ses, at TreeMap opretholder en bestemt rækkefølge. Elementerne udskrives i stigende rækkefølge.

Hvad er ligheden mellem HashMap og TreeMap?

  • Både HashMap og TreeMap implementerer Map interface.
  • Både HashMap og TreeMap kan gemme og manipulere mange elementer.
  • Både HashMap og TreeMap indeholder nøgle-, værdipar.
  • Både HashMap og TreeMap kan have mange nulværdier.
  • Der er ingen begrænsning for antallet af elementer, der kan gemmes i både HashMap og TreeMap.

Hvad er forskellen mellem HashMap og TreeMap?

HashMap vs TreeMap

En HashMap er en kortbaseret samlingsklasse, der bruges til at gemme nøgle- og værdipar, som ikke opretholder en bestemt rækkefølge i dataelementer. En TreeMap er en kortbaseret samlingsklasse, der bruges til at gemme nøgle- og værdipar, som opretholder stigende rækkefølge af dataelementer.
 Bestille
HashMap opretholder ikke ordren. TreeMap opretholder den stigende rækkefølge.
Nul nøgle
HashMap kan indeholde en nul-nøgle. TreeMap kan ikke have en nul-nøgle.
 Ydeevne
HashMap er hurtigere end TreeMap. TreeMap er langsommere end HashMap.

Resumé - HashMap vs TreeMap

Programmeringssprog som Java indeholder indsamlingsrammen. I matriser kan der være et fast antal elementer. Derfor skal arraystørrelsen initialiseres i begyndelsen. I samlinger kan programmereren gemme mange elementer efter behov. Der er ikke noget specifikt beløb at gemme. Kortet er en grænseflade, der hører til indsamlingsrammer. En HashMap er en kortbaseret samlingsklasse, der bruges til at gemme nøgle- og værdipar, som ikke opretholder en bestemt rækkefølge i dataelementer. En TreeMap er en kortbaseret samlingsklasse, der bruges til at gemme nøgle- og værdipar, som opretholder den stigende rækkefølge af dataelementer. Denne artikel diskuterede forskellen mellem HashMap og TreeMap, der implementerer Map-grænsefladen. Forskellen mellem HashMap og TreeMap er, at HashMap ikke opretholder en bestemt rækkefølge i dataelementer, mens TreeMap opretholder stigende rækkefølge af dataelementer.

Reference:

1. "HashMap i Java - javatpoint." Pointen, Tilgængelig her
2. "TreeMap i Java - javatpoint."  Pointen, Tilgængelig her

Billede høflighed:

1.'Java.util.Map hierarky'By ramlmn - Eget arbejde, (CC BY-SA 4.0) via Commons Wikimedia