Večina programskih jezikov podpira matrike. Gre za podatkovno strukturo, ki se uporablja za shranjevanje več elementov iste vrste podatkov. Če je za šest elementov prijavljen niz, ga ni mogoče uporabiti za shranjevanje desetih elementov. Zato matriki niso dinamični in po razglasitvi ne morejo spremeniti velikosti matrike. Programski jeziki, kot je Java, podpirajo zbirke, ki se uporabljajo za dinamično shranjevanje podatkov. Zbirke podpirajo operacije, kot so dodajanje elementov in brisanje elementov. V hierarhiji zbirke je več vmesnikov in razredov. Osnovni vmesnik je vmesnik Zbirka. Set je vmesnik, ki razširja vmesnik Collection. Ne dovoljuje podvajanja. TreeSet in HashSet sta v hierarhiji Collection dva razreda in oba izvajata vmesnik Set. TreeSet je razred, ki izvaja vmesnik Set in se uporablja za shranjevanje edinstvenih elementov v naraščajočem vrstnem redu. HashSet je razred, ki izvaja vmesnik Set in se uporablja za shranjevanje edinstvenih elementov s pomočjo mehanizma Hashing. The ključna razlika med TreeSetom in HashSetom je to TreeSet shranjuje elemente v naraščajočem vrstnem redu, medtem ko HashSet ne shranjuje elementov v naraščajočem vrstnem redu. Tako TreeSet kot HashSet shranjujeta edinstvene elemente.
1. Pregled in ključne razlike
2. Kaj je TreeSet
3. Kaj je HashSet
4. Podobnosti med TreeSet in HashSetom
5. Primerjava ob strani - TreeSet proti HashSetu v tabeli
6. Povzetek
TreeSet razred uporablja vmesnik NavigableSet. Vmesnik NavigableSet razširja vmesnike SortedSet, Set, Collection in Iterable v hierarhičnem vrstnem redu. TreeSet vedno vzdržuje naraščajoči vrstni red. Če so bili elementi vstavljeni v vrstnem redu B, A, C, bodo shranjeni kot A, B, C. Metode, kot so dodajanje (), odstranjevanje (), se lahko uporabljajo s TreeSet objektom. Za dodajanje elementa lahko uporabimo metodo add. Metoda odstranjevanja se uporablja za odstranitev elementa iz zbirke. To je nekaj metod, ki jih je mogoče uporabiti pri TreeSetu.
Slika 01: Program s sistemom TreeSet
Po zgornjem programu se ustvari objekt tipa TreeSet. Elementi niza podatkov so dodani v ta objekt z uporabo metode dodajanja. Vrstni red vstavljenih podatkov je A, D, A, B, C, D. S pomočjo iteratorja se shranjene vrednosti natisnejo na zaslon. Izhod je A, B, C, D. Čeprav obstajata dve črki A in dve črki D, izhod prikazuje vsakega A in D. Zato TreeSet hrani edinstvene elemente. Ni določenega vrstnega reda vstavljanja, vendar ob opazovanju izhoda vidimo, da TreeSet vzdržuje naraščajoči vrstni red elementov.
HashSet razred razširja razred AbstractSet, ki izvaja Set Interface. Vmesnik Set podeduje vmesnike Collection in Iterable v hierarhičnem vrstnem redu. V HashSetu ni zagotovila, da bodo elementi ohranili naraščajoči in vstavljeni vrstni red. Če je bil vstavljeni vrstni red A, B, C, se vrednosti lahko shranijo kot C, A, B. Nalog shranjevanja je lahko tudi A, B, C, vendar ni nobenega zagotovila, da se vstavljeni ali naraščajoči vrstni red vzdržuje.
Slika 02: Program s HashSetom
Po zgornjem programu se ustvari objekt tipa HashSet. Elementi niza podatkov so dodani v ta objekt z uporabo metode dodajanja. Vrstni red vstavljenih podatkov je L, R, M, M, R, L. S pomočjo iteratorja se shranjene vrednosti natisnejo na zaslon. Izhod je R L M. Kljub temu da sta od vsake dve črki L, R in M, je prikazana samo ena črka. Zato HashSet hrani edinstvene elemente. Ko opazujemo izhod, se vidi, da ni nobenega naraščajočega ali da se vstavljeni vrstni red ohranja.
TreeSet proti HashSetu | |
TreeSet je razred hierarhije zbirke, ki se uporablja za shranjevanje edinstvenih elementov v naraščajočem vrstnem redu. | HashSet je razred v hierarhiji zbirke, ki se uporablja za shranjevanje edinstvenih elementov s pomočjo mehanizma Hashing. |
Shranjevanje elementov | |
TreeSet shranjuje elemente v naraščajočem vrstnem redu. | HashSet ne shranjuje elementov v naraščajočem vrstnem redu. |
Pri programiranju je potrebno dinamično shranjevanje podatkovnih elementov. Programiranje jezikov, kot je Java, podpira zbirke za dosego te naloge. V hierarhiji zbirke je več vmesnikov in razredov. TreeSet in HashSet sta dva razreda v hierarhiji Zbirke. Oba izvajata vmesnik Set. TreeSet je razred, ki izvaja vmesnik Set in se uporablja za shranjevanje edinstvenih elementov v naraščajočem vrstnem redu. HashSet je razred, ki izvaja vmesnik Set in se uporablja za shranjevanje edinstvenih elementov s pomočjo mehanizma Hashing. Razlika med TreeSet in HashSet je, da TreeSet elemente shranjuje v naraščajočem vrstnem redu, medtem ko HashSet elementov ne shrani v naraščajočem vrstnem redu. Ta članek obravnava razliko med TreeSet in HashSet.
1. "TreeSet v Javi - javatpoint." JavaPoint. Na voljo tukaj
2. "HashSet v Javi - javatpoint." JavaPoint . Na voljo tukaj