Forskellen mellem TreeSet og HashSet

Indholdsfortegnelse:

Forskellen mellem TreeSet og HashSet
Forskellen mellem TreeSet og HashSet

Video: Forskellen mellem TreeSet og HashSet

Video: Forskellen mellem TreeSet og HashSet
Video: Разница между HashMap и TreeMap Java собеседование 2024, Juli
Anonim

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 deklareret array for seks elementer, kan det ikke bruges til at gemme ti elementer. Derfor er arrays ikke dynamiske og kan ikke ændre størrelsen af arrayet, når det først er erklæret. Programmeringssprog såsom Java understøtter samlinger, der bruges til at lagre data dynamisk. Samlinger understøtter operationer såsom tilføjelse af elementer og sletning af elementer. Der er en række grænseflader og klasser i samlingshierarkiet. Basisgrænsefladen er samlingsgrænsefladen. Set er en grænseflade, der udvider samlingsgrænsefladen. Det tillader ikke duplikering. TreeSet og HashSet er to klasser i samlingshierarkiet og implementerer begge 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. Den vigtigste forskel 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.

Hvad er et træsæt?

TreeSet-klassen implementerer NavigableSet-grænsefladen. NavigableSet-grænsefladen udvider SortedSet, Set, Collection og Iterable-grænseflader i hierarkisk rækkefølge. TreeSet opretholder altid den stigende rækkefølge. Hvis elementerne blev indsat i B, A, C rækkefølge, vil de blive gemt som A, B, C. Metoderne såsom tilføje (), fjern () kan bruges med TreeSet objekt. Tilføj metoden kan bruges til at tilføje et element. Fjernmetoden bruges til at fjerne et element fra samlingen. Det er nogle metoder, der kan bruges med TreeSet.

Forskellen mellem TreeSet og HashSet
Forskellen mellem TreeSet og HashSet

Figur 01: Program med TreeSet

I henhold til ovenstående program oprettes et objekt af typen TreeSet. Strengdataelementerne tilføjes til det pågældende objekt ved hjælp af add-metoden. Den indsatte 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 outputtet det ene A og et D hver. Derfor gemmer TreeSet unikke elementer. Der er ingen særlig indsættelsesrækkefølge, men når man observerer outputtet, 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. Set-grænsefladen arver Collection og Iterable-grænseflader i hierarkisk rækkefølge. I HashSet er der ingen garanti for, at elementerne bevarer den stigende rækkefølge og den indsatte rækkefølge. Hvis den indsatte rækkefølge var A, B, C, kan værdierne gemmes som C, A, B. Lagringsrækkefølge 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.

Nøgleforskel mellem TreeSet og HashSet
Nøgleforskel mellem TreeSet og HashSet

Figur 02: Program med HashSet

I henhold til ovenstående program oprettes et objekt af typen HashSet. Strengdataelementerne tilføjes til det pågældende objekt ved hjælp af add-metoden. Den indsatte 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 R L M. Selvom der er to L-, R- og M-bogstaver fra hver, vises kun ét bogstav fra hver. Derfor gemmer HashSet unikke elementer. Når man observerer outputtet, kan det ses, at der ikke er nogen stigende rækkefølge, eller den indsatte rækkefølge bibeholdes.

Hvad er lighederne mellem TreeSet og HashSet?

  • Både TreeSet og HashSet er klasser, der tilhører 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?

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.

Oversigt – TreeSet vs HashSet

I programmering er det nødvendigt at gemme dataelementer dynamisk. Programmeringssprog såsom Java understøtter samlinger for at udføre denne opgave. Der er en række 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.

Anbefalede: