Verschil tussen HashMap en TreeMap

Belangrijkste verschil - HashMap vs TreeMap
 

Bij het programmeren zijn er verschillende mechanismen om gegevens te verzamelen. Collecties is een methode om gegevens op te slaan. Programmeertalen zoals Java gebruiken Collecties. Het is een raamwerk met klassen en interfaces voor het opslaan en manipuleren van een reeks gegevenselementen. In een normale array is er een vast aantal elementen om op te slaan. Dat is een beperking van arrays. In plaats daarvan kan de programmeur collecties gebruiken. Bewerkingen zoals invoegen, verwijderen, sorteren en zoeken kunnen worden uitgevoerd met behulp van verzamelingen. In Java behoort de kaart-interface tot collecties. De kaart wordt gebruikt om gegevens weer te geven in de sleutel, waardeparen. Er zijn alleen unieke sleutels en elk heeft een bijbehorende waarde. HashMap en TreeMap zijn klassen die de interface van Map implementeren. Een HashMap is een op kaarten gebaseerde collectieklasse die wordt gebruikt voor het opslaan van sleutel- en waardeparen die een specifieke volgorde in gegevenselementen niet behouden. Een TreeMap is een op kaarten gebaseerde collectieklasse die wordt gebruikt voor het opslaan van sleutel- en waardeparen die de oplopende volgorde van gegevenselementen onderhouden. De belangrijk verschil tussen HashMap en TreeMap is dat HashMap onderhoudt geen specifieke volgorde in gegevenselementen terwijl TreeMap de oplopende volgorde van gegevenselementen onderhoudt.

INHOUD

1. Overzicht en belangrijkste verschil
2. Wat is HashMap
3. Wat is TreeMap
4. Overeenkomsten tussen HashMap en TreeMap
5. Vergelijking zij aan zij - HashMap vs TreeMap in tabelvorm
6. Samenvatting

Wat is HashMap?

HashMap is een klasse die de kaartinterface implementeert. Het breidt de klasse AbstractMap uit en implementeert de kaartinterface. Een HashMap bevat de sleutel, waardeparen. Elk element is uniek. Het is gemakkelijk om de elementen in HashMap te vinden met behulp van de sleutel. Het declareren van een HashMap is als volgt.

public class HashMap breidt AbstractMap implementeert Map, Cloneable, Serializable

De K verwijst naar de sleutel terwijl V verwijst naar de waarde die overeenkomt met die specifieke sleutel. Elke sleutel, waardepaar is een invoer van de HashMap.

Afbeelding 01: kaartinterface

Veronderstel een scenario als volgt om de HaspMap te begrijpen. Als de programmeur een set studentnamen en bijbehorende indexnummers wil opslaan, kan hij de HashMap gebruiken. De namen van de studenten worden gebruikt om de indexnummers te vinden. Daarom zijn studentnamen de sleutels, terwijl indexnummers de waarden zijn.

Figuur 02: HashMap-programma met behulp van Java

Volgens het bovenstaande programma wordt een object van HashMap gemaakt. Vervolgens kan de programmeur elementen toevoegen met behulp van dat object. Waarden kunnen worden ingevoegd met behulp van de put-methode. Om de waarden op te halen, moet de programmeur de methode get gebruiken met de sleutel. Bij gebruik van studentList.get ("150"); het zal de corresponderende naam afdrukken naar die index die Ann is. Als de programmeur alle waarden wil ophalen, kan hij Map.Entry gebruiken om alle sleutels en waarden af ​​te drukken. Bij het waarnemen van de uitvoer kan worden gezien dat HashMap geen specifieke volgorde aanhoudt. Het drukt de elementen niet in de ingevoegde volgorde af. De elementen worden in een willekeurige volgorde afgedrukt.

Wat is TreeMap?

De TreeMap is een klasse in Java die de interface van de kaart implementeert. Net als bij een HashMap, wordt het ook gebruikt voor het opslaan van sleutel-, waardeparen maar in oplopende volgorde. De TreeMap implementeert de NavigableMap en NavigableMap breidt SortedMap uit en SortedMap breidt Map uit. Elk element is uniek. Het declareren van een TreeMap is als volgt.

public class TreeMap breidt AbstractMap implementeert NavigableMap, Cloneable, Serializable

De K verwijst naar de sleutel terwijl V verwijst naar de waarde die overeenkomt met die specifieke sleutel. Elke sleutel, waardepaar is een invoer van de TreeMap.

Figuur 03: TreeMap-programma met behulp van Java

Volgens het bovenstaande programma wordt een object van TreeMap gemaakt. Vervolgens kan de programmeur elementen toevoegen met behulp van dat object. Waarden kunnen worden ingevoegd met behulp van de put-methode. Om de waarden op te halen, moet de programmeur de methode get gebruiken met de sleutel. Bij gebruik van studentList.get ("150"); het zal de corresponderende naam afdrukken naar die index die Ann is. Als de programmeur alle waarden wil ophalen, kan hij Map.Entry gebruiken om alle sleutels en waarden af ​​te drukken. Bij het waarnemen van de uitvoer kan worden gezien dat TreeMap een specifieke volgorde aanhoudt. De elementen worden afgedrukt in oplopende volgorde.

Wat zijn de overeenkomsten tussen HashMap en TreeMap?

  • Zowel HashMap als TreeMap implementeert de kaartinterface.
  • Zowel HashMap als TreeMap kunnen veel elementen opslaan en manipuleren.
  • Zowel HashMap als TreeMap bevatten sleutel, waardeparen.
  • Zowel HashMap als TreeMap kunnen veel null-waarden hebben.
  • Er is geen beperking voor het aantal elementen dat kan worden opgeslagen in zowel HashMap als TreeMap.

Wat is het verschil tussen HashMap en TreeMap?

HashMap en TreeMap

Een HashMap is een op kaarten gebaseerde collectieklasse die wordt gebruikt voor het opslaan van sleutel- en waardeparen die geen specifieke volgorde in gegevenselementen onderhouden. Een TreeMap is een op kaarten gebaseerde collectieklasse die wordt gebruikt voor het opslaan van sleutel- en waardeparen die de oplopende volgorde van gegevenselementen handhaaft.
 Bestellen
De HashMap handhaaft de bestelling niet. De TreeMap onderhoudt de oplopende volgorde.
Null-toets
De HashMap kan één nul-sleutel bevatten. De TreeMap kan geen nultoets hebben.
 Prestatie
HashMap is sneller dan TreeMap. TreeMap is langzamer dan HashMap.

Samenvatting - HashMap vs TreeMap

Programmeertalen zoals Java bevatten het verzamelkader. In arrays kan er een vast aantal elementen zijn. Daarom moet de array-grootte aan het begin worden geïnitialiseerd. In verzamelingen kan de programmeur veel elementen opslaan zoals vereist. Er is geen specifiek bedrag om op te slaan. De kaart is een interface die tot het verzamelkader behoort. Een HashMap is een op kaarten gebaseerde collectieklasse die wordt gebruikt voor het opslaan van sleutel- en waardeparen die een specifieke volgorde in gegevenselementen niet behouden. Een TreeMap is een op kaarten gebaseerde collectieklasse die wordt gebruikt voor het opslaan van sleutel- en waardeparen die de oplopende volgorde van gegevenselementen handhaaft. In dit artikel wordt het verschil besproken tussen HashMap en TreeMap waarmee de interface van Map wordt geïmplementeerd. Het verschil tussen HashMap en TreeMap is dat HashMap een specifieke volgorde in gegevenselementen niet bijhoudt, terwijl TreeMap de oplopende volgorde van gegevenselementen bijhoudt.

Referentie:

1. "HashMap in Java - javatpoint." Het punt, Beschikbaar Hier
2. "TreeMap in Java - javatpoint."  Het punt, Beschikbaar Hier

Afbeelding met dank aan:

1.'Java.util.Kaarthiërarchie'Door ramlmn - Eigen werk, (CC BY-SA 4.0) via Commons Wikimedia