Pagrindinis skirtumas – TreeSet vs HashSet
Dauguma programavimo kalbų palaiko masyvus. Tai duomenų struktūra, naudojama keliems to paties duomenų tipo elementams saugoti. Jei šešiems elementams deklaruotas masyvas, jis negali būti naudojamas dešimčiai elementų saugoti. Todėl masyvai nėra dinamiški ir negali pakeisti masyvo dydžio, kai jis deklaruojamas. Programavimo kalbos, tokios kaip „Java“, palaiko kolekcijas, kurios naudojamos dinamiškai saugoti duomenis. Kolekcijos palaiko tokias operacijas kaip elementų pridėjimas ir elementų ištrynimas. Rinkinių hierarchijoje yra keletas sąsajų ir klasių. Pagrindinė sąsaja yra kolekcijos sąsaja. Set yra sąsaja, praplečianti Kolekcijos sąsają. Tai neleidžia dubliuotis. „TreeSet“ir „HashSet“yra dvi kolekcijos hierarchijos klasės ir abi įgyvendina „Set“sąsają. TreeSet yra klasė, kuri įgyvendina Set sąsają ir naudojama unikaliems elementams saugoti didėjančia tvarka. HashSet yra klasė, kuri įgyvendina Set sąsają ir naudojama unikaliems elementams saugoti naudojant maišos mechanizmą. Pagrindinis skirtumas tarp „TreeSet“ir „HashSet“yra tas, kad „TreeSet“saugo elementus didėjančia tvarka, o „HashSet“nesaugo elementų didėjančia tvarka. Tiek TreeSet, tiek HashSet saugo tik unikalius elementus.
Kas yra medžių rinkinys?
TreeSet klasė įgyvendina NavigableSet sąsają. „NavigableSet“sąsaja išplečia „SortedSet“, „Set“, „Collection“ir „Iterable“sąsajas hierarchine tvarka. TreeSet visada palaiko didėjančią tvarką. Jei elementai buvo įterpti B, A, C tvarka, jie bus saugomi kaip A, B, C. Tokie metodai kaip pridėti (), pašalinti () gali būti naudojami su TreeSet objektu. Elementui pridėti galima naudoti pridėjimo metodą. Pašalinimo metodas naudojamas elementui pašalinti iš kolekcijos. Tai yra keli metodai, kuriuos galima naudoti su TreeSet.
01 pav.: programa su TreeSet
Pagal aukščiau pateiktą programą sukuriamas TreeSet tipo objektas. Eilučių duomenų elementai pridedami prie to objekto naudojant pridėjimo metodą. Duomenų įterpimo tvarka yra A, D, A, B, C, D. Naudojant iteratorių, išsaugotos reikšmės atspausdinamos ekrane. Išvestis yra A, B, C, D. Nors yra dvi A raidės ir dvi D raidės, išvestis rodo po vieną A ir vieną D. Todėl „TreeSet“saugo unikalius elementus. Konkrečios įterpimo tvarkos nėra, tačiau stebint išvestį galima pastebėti, kad TreeSet išlaiko didėjančią elementų tvarką.
Kas yra maišos rinkinys?
HashSet klasė išplečia AbstractSet klasę, kuri įgyvendina Set Interface. „Set“sąsaja paveldi „Collection“ir „Iterable“sąsajas hierarchine tvarka. „HashSet“nėra garantijos, kad elementai išlaikys didėjančią ir įterptą tvarką. Jei įterpta tvarka buvo A, B, C, vertės gali būti saugomos kaip C, A, B. Saugojimo tvarka taip pat gali būti A, B, C, tačiau nėra garantijos, kad įterpta tvarka arba didėjančia tvarka bus išlaikyta.
02 pav.: programa su HashSet
Pagal aukščiau pateiktą programą sukuriamas HashSet tipo objektas. Eilučių duomenų elementai pridedami prie to objekto naudojant pridėjimo metodą. Duomenų įterpimo tvarka yra L, R, M, M, R, L. Naudojant iteratorių, išsaugotos reikšmės atspausdinamos į ekraną. Išvestis yra R L M. Nors iš kiekvienos yra dvi L, R ir M raidės, rodoma tik viena raidė iš kiekvienos. Todėl „HashSet“saugo unikalius elementus. Stebint išvestį matyti, kad nėra didėjimo tvarkos arba įterpta tvarka išlaikoma.
Kokie yra TreeSet ir HashSet panašumai?
- TreeSet ir HashSet yra klasės, priklausančios rinkinio hierarchijai.
- TreeSet ir HashSet saugo tik unikalius elementus.
- TreeSet ir HashSet galima naudoti daugeliui elementų saugojimui ir manipuliavimui.
- TreeSet ir HashSet nepalaiko įterptos tvarkos.
Kuo skiriasi TreeSet ir HashSet?
TreeSet vs HashSet |
|
TreeSet yra rinkinio hierarchijos klasė, kuri naudojama unikaliems elementams saugoti didėjančia tvarka. | HashSet yra rinkinio hierarchijos klasė, kuri naudojama unikaliems elementams saugoti naudojant maišos mechanizmą. |
Elementų saugojimas | |
TreeSet išsaugo elementus didėjančia tvarka. | HashSet nesaugo elementų didėjančia tvarka. |
Santrauka – TreeSet vs HashSet
Programuojant duomenų elementus reikia saugoti dinamiškai. Programavimo kalbos, tokios kaip „Java“, palaiko kolekcijas, kad būtų galima atlikti šią užduotį. Rinkinių hierarchijoje yra keletas sąsajų ir klasių. TreeSet ir HashSet yra dvi kolekcijos hierarchijos klasės. Abi įgyvendina sąsają Set. TreeSet yra klasė, kuri įgyvendina Set sąsają ir naudojama unikaliems elementams saugoti didėjančia tvarka. HashSet yra klasė, kuri įgyvendina Set sąsają ir naudojama unikaliems elementams saugoti naudojant maišos mechanizmą. Skirtumas tarp „TreeSet“ir „HashSet“yra tas, kad „TreeSet“saugo elementus didėjančia tvarka, o „HashSet“nesaugo elementų didėjančia tvarka. Šiame straipsnyje aptariamas skirtumas tarp TreeSet ir HashSet.