Većina programskih jezika podržava Arrays. To je struktura podataka koja se koristi za pohranu više elemenata iste vrste podataka. Ako postoji niz koji je deklariran za šest elemenata, on se ne može koristiti za spremanje deset elemenata. Prema tome, nizovi nisu dinamični i ne mogu mijenjati veličinu matrice nakon što je deklarirana. Programski jezici kao što je Java podržava Zbirke koje se koriste za dinamičko spremanje podataka. Zbirke podržavaju operacije poput dodavanja elemenata i brisanja elemenata. Postoji niz sučelja i klasa u hijerarhiji zbirke. Osnovno sučelje je sučelje kolekcije. Set je sučelje koje proširuje sučelje Collection. Ne dopušta umnožavanje. TreeSet i HashSet su dvije klase u hijerarhiji kolekcije i obje implementiraju sučelje Set. TreeSet je klasa koja implementira Set sučelje i koristi se za pohranu jedinstvenih elemenata u uzlaznom redoslijedu. HashSet je klasa koja implementira Set sučelje i koristi se za pohranjivanje jedinstvenih elemenata koristeći Hashing mehanizam. ključna razlika između TreeSet-a i HashSet-a je to TreeSet pohranjuje elemente u uzlaznom redoslijedu dok HashSet ne pohranjuje elemente u uzlaznom redoslijedu. I TreeSet i HashSet pohranjuju samo jedinstvene elemente.
1. Pregled i ključne razlike
2. Što je TreeSet
3. Što je HashSet
4. Sličnosti između TreeSet-a i HashSet-a
5. Usporedna usporedba - TreeSet vs HashSet u tabelarnom obliku
6. Sažetak
TreeSet klasa implementira NavigableSet sučelje. Sučelje NavigableSet proširuje sučelja SortedSet, Set, Collection i Iterable hijerarhijskim redoslijedom. TreeSet uvijek održava uzlazni poredak. Ako su elementi umetnuti u B, A, C redoslijedu, oni će biti pohranjeni kao A, B, C. Metode poput dodavanja (), uklanjanja () mogu se koristiti s TreeSet objektom. Za dodavanje elementa može se koristiti metoda dodavanja. Metoda uklanjanja koristi se za uklanjanje elementa iz kolekcije. To su neke metode koje se mogu koristiti s TreeSetom.
Slika 01: Program s TreeSetom
Prema gore navedenom programu, kreira se objekt tipa TreeSet. Elementi stringova podataka dodaju se tom objektu pomoću metode dodavanja. Redoslijed umetnutih podataka je A, D, A, B, C, D. Pomoću iteratora pohranjene vrijednosti se ispisuju na ekranu. Izlaz je A, B, C, D. Iako postoje dva slova A i dva slova D, izlaz prikazuje jedno A i jedno D svako. Stoga TreeSet pohranjuje jedinstvene elemente. Ne postoji određeni redoslijed umetanja, ali kad se promatra izlaz, može se vidjeti da TreeSet održava uzlazni redoslijed elemenata..
HashSet klasa proširuje klasu AbstractSet koja implementira Set Interface. Sučelje Set nasljeđuje zbirka i Interable sučelja hijerarhijskim redoslijedom. U HashSetu ne postoji jamstvo da će elementi održavati uzlazni i umetnuti redoslijed. Ako je umetnuti redoslijed A, B, C, vrijednosti se mogu pohraniti kao C, A, B. Redoslijed pohranjivanja može biti i A, B, C, ali ne postoji jamstvo da će se umetnuti redoslijed ili uzlazni poredak održavati.
Slika 02: Program s HashSet-om
Prema gore navedenom programu, kreira se objekt tipa HashSet. Elementi stringova podataka dodaju se tom objektu pomoću metode dodavanja. Redoslijed umetnutih podataka je L, R, M, M, R, L. Pomoću iteratora pohranjene vrijednosti se ispisuju na ekranu. Izlaz je R L M. Iako postoje dva slova L, R i M iz svakog, samo je jedno slovo prikazano. Stoga HashSet pohranjuje jedinstvene elemente. Kada se promatra izlaz, vidi se da ne postoji uzlazni poredak ili se umetnuti redoslijed održava.
TreeSet vs HashSet | |
TreeSet je klasa u hijerarhiji kolekcije koja se koristi za pohranjivanje jedinstvenih elemenata u uzlaznom redoslijedu. | HashSet je klasa u hijerarhiji kolekcije koja se koristi za pohranjivanje jedinstvenih elemenata pomoću Hashing mehanizma. |
Pohranjivanje elemenata | |
TreeSet pohranjuje elemente u uzlaznom redoslijedu. | HashSet ne pohranjuje elemente uzlaznim redoslijedom. |
U programiranju je potrebno dinamički pohranjivati podatke. Programski jezici kao što je Java podržava Zbirke za postizanje ovog zadatka. Postoji niz sučelja i klasa u hijerarhiji zbirke. TreeSet i HashSet su dvije klase u hijerarhiji kolekcije. Oboje implementira Set sučelje. TreeSet je klasa koja implementira Set sučelje i koristi se za pohranu jedinstvenih elemenata u uzlaznom redoslijedu. HashSet je klasa koja implementira Set sučelje i koristi se za pohranjivanje jedinstvenih elemenata koristeći Hashing mehanizam. Razlika između TreeSet-a i HashSet-a je u tome što TreeSet pohranjuje elemente u uzlaznom redoslijedu dok HashSet ne pohranjuje elemente u uzlaznom redoslijedu. Ovaj članak govori o razlici između TreeSet-a i HashSet-a.
1. "TreeSet u Javi - javatpoint." JavaPoint. Dostupno ovdje
2. "HashSet u Javi - javatpoint." JavaPoint . Dostupno ovdje