Belangrijk verschil – TreeSet vs HashSet
De meeste programmeertalen ondersteunen arrays. Het is een gegevensstructuur die wordt gebruikt om meerdere elementen van hetzelfde gegevenstype op te slaan. Als er een array is gedeclareerd voor zes elementen, kan deze niet worden gebruikt om tien elementen op te slaan. Daarom zijn arrays niet dynamisch en kunnen ze de grootte van de array niet wijzigen nadat deze is gedeclareerd. Programmeertalen zoals Java ondersteunen verzamelingen die worden gebruikt om gegevens dynamisch op te slaan. Verzamelingen ondersteunen bewerkingen zoals het toevoegen van elementen en het verwijderen van elementen. Er is een aantal interfaces en klassen in de collectiehiërarchie. De basisinterface is de Collectie-interface. Set is een interface die de collectie-interface uitbreidt. Het staat geen duplicatie toe. De TreeSet en HashSet zijn twee klassen in de collectiehiërarchie en beide implementeren de Set-interface. TreeSet is een klasse die de Set-interface implementeert en wordt gebruikt om unieke elementen in oplopende volgorde op te slaan. HashSet is een klasse die de Set-interface implementeert en wordt gebruikt om unieke elementen op te slaan met behulp van het Hashing-mechanisme. Het belangrijkste verschil tussen TreeSet en HashSet is dat TreeSet de elementen in oplopende volgorde opslaat, terwijl de HashSet de elementen niet in oplopende volgorde opslaat. Zowel TreeSet als HashSet slaan alleen unieke elementen op.
Wat is een TreeSet?
TreeSet-klasse implementeert de NavigableSet-interface. De NavigableSet-interface breidt de interfaces SortedSet, Set, Collection en Iterable uit in hiërarchische volgorde. TreeSet handhaaft altijd de oplopende volgorde. Als de elementen zijn ingevoegd in de volgorde B, A, C, worden ze opgeslagen als A, B, C. De methoden zoals add (), remove () kunnen worden gebruikt met TreeSet-object. De add-methode kan worden gebruikt om een element toe te voegen. De verwijdermethode wordt gebruikt om een element uit de collectie te verwijderen. Dit zijn enkele methoden die kunnen worden gebruikt met TreeSet.
Figuur 01: Programma met TreeSet
Volgens het bovenstaande programma wordt een object van het type TreeSet gemaakt. De string data-elementen worden aan dat object toegevoegd met behulp van de add-methode. De volgorde van ingevoegde gegevens is A, D, A, B, C, D. Met behulp van de iterator worden de opgeslagen waarden op het scherm afgedrukt. De uitvoer is A, B, C, D. Hoewel er twee A-letters en twee D-letters zijn, geeft de uitvoer elk de ene A en één D weer. Daarom slaat de TreeSet unieke elementen op. Er is geen specifieke invoegvolgorde, maar bij het observeren van de uitvoer kan worden gezien dat de TreeSet de oplopende volgorde van de elementen handhaaft.
Wat is een HashSet?
De HashSet-klasse breidt de AbstractSet-klasse uit die Set Interface implementeert. De Set-interface erft de interfaces Collection en Iterable in hiërarchische volgorde. In HashSet is er geen garantie dat de elementen de oplopende volgorde en de ingevoegde volgorde behouden. Als de ingevoegde volgorde A, B, C was, dan kunnen de waarden worden opgeslagen als C, A, B. De opslagvolgorde kan ook A, B, C zijn, maar er is geen garantie dat de ingevoegde volgorde of oplopende volgorde behouden blijft.
Figuur 02: Programma met HashSet
Volgens het bovenstaande programma wordt een object van het type HashSet gemaakt. De string data-elementen worden aan dat object toegevoegd met behulp van de add-methode. De ingevoerde gegevensvolgorde is L, R, M, M, R, L. Met behulp van de iterator worden de opgeslagen waarden op het scherm afgedrukt. De uitvoer is R L M. Ook al zijn er twee L-, R- en M-letters van elk, er wordt slechts één letter van elk weergegeven. Daarom slaat de HashSet unieke elementen op. Bij het observeren van de uitvoer kan worden gezien dat er geen oplopende volgorde is of dat de ingevoegde volgorde behouden blijft.
Wat zijn de overeenkomsten tussen TreeSet en HashSet?
- Zowel TreeSet als HashSet zijn klassen die behoren tot de verzamelingshiërarchie.
- Zowel TreeSet als HashSet slaan alleen unieke elementen op.
- Zowel TreeSet als HashSet kunnen worden gebruikt om veel elementen op te slaan en te manipuleren.
- Zowel TreeSet als HashSet behouden de ingevoegde volgorde niet.
Wat is het verschil tussen TreeSet en HashSet?
TreeSet vs HashSet |
|
TreeSet is een klasse in de verzamelingshiërarchie die wordt gebruikt om unieke elementen in oplopende volgorde op te slaan. | HashSet is een klasse in de verzamelingshiërarchie die wordt gebruikt om unieke elementen op te slaan met behulp van het hash-mechanisme. |
Elementopslag | |
TreeSet slaat de elementen op in oplopende volgorde. | HashSet slaat de elementen niet in oplopende volgorde op. |
Samenvatting – TreeSet vs HashSet
Bij het programmeren is het vereist om gegevenselementen dynamisch op te slaan. Programmeertalen zoals Java ondersteunen Collections om deze taak uit te voeren. Er is een aantal interfaces en klassen in de collectiehiërarchie. De TreeSet en HashSet zijn twee klassen in de verzamelingshiërarchie. Beide implementeren de Set-interface. TreeSet is een klasse die de Set-interface implementeert en wordt gebruikt om unieke elementen in oplopende volgorde op te slaan. HashSet is een klasse die de Set-interface implementeert en wordt gebruikt om unieke elementen op te slaan met behulp van het Hashing-mechanisme. Het verschil tussen TreeSet en HashSet is dat TreeSet de elementen in oplopende volgorde opslaat, terwijl de HashSet de elementen niet in oplopende volgorde opslaat. Dit artikel besprak het verschil tussen TreeSet en HashSet.