Kulcskülönbség – TreeSet vs HashSet
A legtöbb programozási nyelv támogatja a tömböket. Ez egy adatstruktúra, amely több, azonos adattípusú elem tárolására szolgál. Ha hat elemhez van deklarált tömb, akkor tíz elem tárolására nem használható. Ezért a tömbök nem dinamikusak, és nem módosíthatják a tömb méretét, miután deklarálták. Az olyan programozási nyelvek, mint a Java, támogatják az adatok dinamikus tárolására használt gyűjteményeket. A gyűjtemények támogatják az olyan műveleteket, mint az elemek hozzáadása és törlése. A gyűjteményhierarchiában számos interfész és osztály található. Az alapfelület a Gyűjtemény felület. A Set egy olyan felület, amely kiterjeszti a Gyűjtemény felületét. Nem teszi lehetővé a sokszorosítást. A TreeSet és a HashSet két osztály a Collection hierarchiában, és mindkettő megvalósítja a Set felületet. A TreeSet egy osztály, amely megvalósítja a Set felületet, és egyedi elemek növekvő sorrendben történő tárolására szolgál. A HashSet egy olyan osztály, amely megvalósítja a Set interfészt, és egyedi elemek tárolására szolgál a Hashing mechanizmus segítségével. A legfontosabb különbség a TreeSet és a HashSet között az, hogy a TreeSet növekvő sorrendben tárolja az elemeket, míg a HashSet nem növekvő sorrendben tárolja az elemeket. A TreeSet és a HashSet is csak egyedi elemeket tárol.
Mi az a TreeSet?
A TreeSet osztály megvalósítja a NavigableSet interfészt. A NavigableSet felület hierarchikus sorrendben bővíti ki a SortedSet, Set, Collection és Iterable felületeket. A TreeSet mindig fenntartja a növekvő sorrendet. Ha az elemek B, A, C sorrendben lettek beszúrva, akkor A, B, C formátumban kerülnek tárolásra. Az olyan metódusok, mint az add (), az eltávolítás () használható a TreeSet objektumhoz. Az add metódus használható elem hozzáadására. Az eltávolítási módszer egy elem eltávolítására szolgál a gyűjteményből. Ezek a módszerek használhatók a TreeSet-tel.
01. ábra: Program a TreeSettel
A fenti program szerint létrejön egy TreeSet típusú objektum. A karakterlánc-adatelemek hozzáadódnak az objektumhoz az add metódussal. Az adatok beillesztési sorrendje A, D, A, B, C, D. Az iterátor segítségével a tárolt értékek kinyomtatásra kerülnek a képernyőre. A kimenet A, B, C, D. Annak ellenére, hogy két A betű és két D betű van, a kimenet egy-egy A és egy D betűt jelenít meg. Ezért a TreeSet egyedi elemeket tárol. Nincs különösebb beszúrási sorrend, de a kimenet megfigyelésekor látható, hogy a TreeSet megtartja az elemek növekvő sorrendjét.
Mi az a HashSet?
A HashSet osztály kiterjeszti az AbstractSet osztályt, amely megvalósítja a Set Interface-t. A Set felület hierarchikus sorrendben örökli a Gyűjtemény és az Iterálható felületeket. A HashSetben nincs garancia arra, hogy az elemek megtartják a növekvő és a beillesztett sorrendet. Ha a beillesztett sorrend A, B, C volt, akkor az értékek C, A, B formátumban tárolhatók. A tárolási sorrend lehet A, B, C is, de nincs garancia arra, hogy a beillesztett sorrend vagy a növekvő sorrend megmarad.
02. ábra: Program a HashSettel
A fenti program szerint egy HashSet típusú objektum jön létre. A karakterlánc-adatelemek hozzáadódnak az objektumhoz az add metódussal. Az adatok beillesztési sorrendje L, R, M, M, R, L. Az iterátor segítségével a tárolt értékek kinyomtatásra kerülnek a képernyőre. A kimenet R L M. Bár mindegyikből két L, R és M betű van, mindegyikből csak egy betű jelenik meg. Ezért a HashSet egyedi elemeket tárol. A kimenet megfigyelésekor látható, hogy nincs növekvő sorrend, vagy a beillesztett sorrend megmarad.
Mi a hasonlóság a TreeSet és a HashSet között?
- A TreeSet és a HashSet is a gyűjteményhierarchiához tartozó osztályok.
- Mind a TreeSet, mind a HashSet csak egyedi elemeket tárol.
- A TreeSet és a HashSet is használható számos elem tárolására és manipulálására.
- A TreeSet és a HashSet sem tartja fenn a beillesztett sorrendet.
Mi a különbség a TreeSet és a HashSet között?
TreeSet vs HashSet |
|
A TreeSet egy osztály a gyűjteményhierarchiában, amely egyedi elemek növekvő sorrendben történő tárolására szolgál. | A HashSet egy osztály a gyűjteményhierarchiában, amely egyedi elemek tárolására szolgál a kivonatolási mechanizmus segítségével. |
Elemtárolás | |
TreeSet az elemeket növekvő sorrendben tárolja. | HashSet nem tárolja az elemeket növekvő sorrendben. |
Összefoglaló – TreeSet vs HashSet
A programozásban szükséges az adatelemek dinamikus tárolása. Az olyan programozási nyelvek, mint a Java, támogatják a gyűjteményeket ennek a feladatnak az eléréséhez. A gyűjteményhierarchiában számos interfész és osztály található. A TreeSet és a HashSet két osztály a Gyűjtemény hierarchiájában. Mindkettő megvalósítja a Set interfészt. A TreeSet egy olyan osztály, amely megvalósítja a Set felületet, és egyedi elemek növekvő sorrendben történő tárolására szolgál. A HashSet egy olyan osztály, amely megvalósítja a Set interfészt, és egyedi elemek tárolására szolgál a Hashing mechanizmus segítségével. A TreeSet és a HashSet közötti különbség az, hogy a TreeSet növekvő sorrendben tárolja az elemeket, míg a HashSet nem növekvő sorrendben tárolja az elemeket. Ez a cikk a TreeSet és a HashSet közötti különbséget tárgyalja.