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.
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
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.
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.
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. |
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.
1. "HashMap in Java - javatpoint." Het punt, Beschikbaar Hier
2. "TreeMap in Java - javatpoint." Het punt, Beschikbaar Hier
1.'Java.util.Kaarthiërarchie'Door ramlmn - Eigen werk, (CC BY-SA 4.0) via Commons Wikimedia