De fleste programmeringssprog understøtter Arrays. Det er en datastruktur, der bruges til at gemme flere elementer af samme datatype. Hvis der er angivet array for seks elementer, kan det ikke bruges til at gemme ti elementer. Derfor er matriser ikke dynamiske og kan ikke ændre størrelsen på matrixen, når den er erklæret. Programmeringssprog 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 indsamlingshierarkiet. Basisgrænsefladen er Collection-grænsefladen. Sæt er en grænseflade, der udvider Collection-grænsefladen. Det tillader ikke kopiering. TreeSet og HashSet er to klasser i samlingshierarkiet og implementerer begge Set-grænsefladen. TreeSet er en klasse, der implementerer Set-grænsefladen, og det bruges til at gemme unikke elementer i stigende rækkefølge. HashSet er en klasse, der implementerer Set-grænsefladen, og det bruges til at gemme unikke elementer ved hjælp af Hashing-mekanismen. Det vigtigste forskel mellem TreeSet og HashSet er det 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.
1. Oversigt og nøgleforskel
2. Hvad er et TreeSet
3. Hvad er en HashSet
4. Ligheder mellem TreeSet og HashSet
5. Sammenligning side ved side - TreeSet vs HashSet i tabelform
6. Resume
TreeSet-klassen implementerer NavigableSet-interface. NavigableSet-grænsefladen udvider grænsefladerne SortedSet, Set, Collection og Iterable i hierarkisk rækkefølge. TreeSet opretholder altid den stigende rækkefølge. Hvis elementerne blev indsat i rækkefølge B, A, C, gemmes de som A, B, C. Metoderne som tilføj (), fjern () kan bruges med TreeSet-objekt. Tilføj-metoden 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. Strengedataelementerne føjes til dette objekt ved hjælp af tilføjelsesmetoden. Den indsatte rækkefølge er A, D, A, B, C, D. Ved hjælp af iteratoren udskrives de gemte værdier på skærmen. Outputet er A, B, C, D. Selvom der er to A-bogstaver og to D-bogstaver, viser outputtet den ene A og en D hver. Derfor gemmer TreeSet unikke elementer. Der er ingen særlig indsættelsesrækkefølge, men når man ser output, kan det ses, at TreeSet opretholder elementernes stigende rækkefølge..
HashSet-klassen udvider AbstractSet-klassen, der implementerer Set Interface. Grænsefladen Set arver Collection og Iterable-grænseflader 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, kan værdierne gemme som C, A, B. Lagringsordre kan også være A, B, C, men der er ingen garanti for, at den indsatte ordre eller stigende rækkefølge opretholdes.
Figur 02: Program med HashSet
I henhold til ovenstående program oprettes et objekt af typen HashSet. Strengedataelementerne føjes til dette objekt ved hjælp af tilføjelsesmetoden. Den indsatte rækkefølge er L, R, M, M, R, L. Ved hjælp af iteratoren udskrives de gemte værdier på skærmen. Outputet er R L 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 orden opretholdes.
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 indsamlingshierarkiet, 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. |
Ved programmering er det påkrævet at gemme dataelementer dynamisk. Programmeringssprog som Java understøtter samlinger for at opnå denne opgave. Der er et antal grænseflader og klasser i indsamlingshierarkiet. TreeSet og HashSet er to klasser i samling hierarkiet. Begge implementerer Set-interface. TreeSet er en klasse, der implementerer Set-grænsefladen, og det bruges til at gemme unikke elementer i stigende rækkefølge. HashSet er en klasse, der implementerer Set-grænsefladen, og det 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.
1. "TreeSet i Java - javatpoint." JavaPoint. Tilgængelig her
2. “HashSet i Java - javatpoint.” JavaPoint . Tilgængelig her