Nøgleforskel - TreeSet vs HashSet
De fleste programmeringssprog understøtter Arrays. Det er en datastruktur, der bruges til at gemme flere elementer af samme datatype. Hvis der er matrix erklæret for seks elementer, kan det ikke bruges til at gemme ti elementer. Derfor er arrays ikke dynamiske og kan ikke ændre størrelsen på arrayet, når det er erklæret. Programmeringssprog såsom Java understøtter samlinger, der bruges til at gemme data dynamisk. Samlinger understøtter operationer såsom tilføjelse af elementer og sletning af elementer. Der er et antal grænseflader og klasser i samlingshierarkiet. Basisgrænsefladen er Collection-grænsefladen. Set er en grænseflade, der udvider Collection-grænsefladen. Det tillader ikke dobbeltarbejde. TreeSet og HashSet er to klasse i samlingshierarkiet, og begge implementerer Set-grænsefladen. TreeSet er en klasse, der implementerer Set-grænsefladen, og den bruges til at gemme unikke elementer i stigende rækkefølge. HashSet er en klasse, der implementerer Set-grænsefladen, og den bruges til at gemme unikke elementer ved hjælp af Hashing-mekanismen. Hovedforskellen mellem TreeSet og HashSet er, at TreeSet gemmer elementerne i stigende rækkefølge, mens HashSet ikke gemmer elementerne i stigende rækkefølge. Både TreeSet og HashSet gemmer kun unikke elementer.
INDHOLD
1. Oversigt og
nøgleforskel 2. Hvad er et tresæt
3. Hvad er et hashsæt
4. Ligheder mellem tresæt og hashsæt
5. Sammenligning side om side - træsæt vs hashsæt i tabelform
6. Resumé
Hvad er et TreeSet?
TreeSet-klassen implementerer NavigableSet-grænsefladen. NavigableSet-grænsefladen udvider SortedSet, Set, Collection og Iterable interfaces i hierarkisk rækkefølge. TreeSet opretholder altid den stigende rækkefølge. Hvis elementerne blev indsat i rækkefølgen B, A, C, gemmes de som A, B, C. Metoderne såsom tilføj (), fjern () kan bruges med TreeSet-objekt. Tilføjelsesmetoden kan bruges til at tilføje et element. Fjernelsesmetoden bruges til at fjerne et element fra samlingen. Det er nogle metoder, der kan bruges med TreeSet.
Figur 01: Program med TreeSet
I henhold til ovenstående program oprettes et objekt af typen TreeSet. Strengdataelementerne føjes til objektet ved hjælp af tilføjelsesmetoden. Den indsatte data rækkefølge er A, D, A, B, C, D. Ved hjælp af iteratoren udskrives de lagrede værdier på skærmen. Outputtet er A, B, C, D. Selvom der er to A-bogstaver og to D-bogstaver, viser output de ene A og en D hver. Derfor gemmer TreeSet unikke elementer. Der er ingen særlig indsætningsrækkefølge, men når man observerer output, kan det ses, at TreeSet opretholder den stigende rækkefølge af elementerne.
Hvad er et HashSet?
HashSet-klassen udvider AbstractSet-klassen, der implementerer Set Interface. Sæt-grænsefladen arver grænseflader til samling og gentagelse i hierarkisk rækkefølge. I HashSet er der ingen garanti for, at elementerne opretholder den stigende rækkefølge og den indsatte rækkefølge. Hvis den indsatte rækkefølge var A, B, C, lagres værdierne muligvis som C, A, B. Lagringsordre kan også være A, B, C, men der er ingen garanti for, at den indsatte rækkefølge eller stigende rækkefølge opretholdes.
Figur 02: Programmer med HashSet
I henhold til ovenstående program oprettes et objekt af typen HashSet. Strengdataelementerne føjes til objektet ved hjælp af tilføjelsesmetoden. Den indsatte data rækkefølge er L, R, M, M, R, L. Ved hjælp af iteratoren udskrives de lagrede værdier på skærmen. Outputtet er RL M. Selvom der er to L-, R- og M-bogstaver fra hver, vises kun et bogstav fra hver. Derfor gemmer HashSet unikke elementer. Når man observerer output kan det ses, at der ikke er nogen stigende rækkefølge, eller at den indsatte rækkefølge opretholdes.
Hvad er ligheden mellem TreeSet og HashSet?
- Både TreeSet og HashSet er klasser, der hører til samlingshierarkiet.
- Både TreeSet og HashSet gemmer kun unikke elementer.
- Både TreeSet og HashSet kan bruges til at gemme og manipulere mange elementer.
- Både TreeSet og HashSet opretholder ikke den indsatte rækkefølge.
Hvad er forskellen mellem TreeSet og HashSet?
Diff artikel midt foran bordet
TreeSet vs HashSet |
|
TreeSet er en klasse i samlingshierarkiet, der bruges til at gemme unikke elementer i stigende rækkefølge. | HashSet er en klasse i samlingshierarkiet, der bruges til at gemme unikke elementer ved hjælp af Hashing-mekanismen. |
Elementlagring | |
TreeSet gemmer elementerne i stigende rækkefølge. | HashSet gemmer ikke elementerne i stigende rækkefølge. |
Resumé - TreeSet vs HashSet
Ved programmering er det nødvendigt at gemme dataelementer dynamisk. Programmeringssprog som Java understøtter samlinger for at nå denne opgave. Der er et antal grænseflader og klasser i samlingshierarkiet. TreeSet og HashSet er to klasser i samlingshierarkiet. Begge implementerer Set-grænsefladen. TreeSet er en klasse, der implementerer Set-grænsefladen, og den bruges til at gemme unikke elementer i stigende rækkefølge. HashSet er en klasse, der implementerer Set-grænsefladen, og den bruges til at gemme unikke elementer ved hjælp af Hashing-mekanismen. Forskellen mellem TreeSet og HashSet er, at TreeSet gemmer elementerne i stigende rækkefølge, mens HashSet ikke gemmer elementerne i stigende rækkefølge. Denne artikel diskuterede forskellen mellem TreeSet og HashSet.