Kluczowa różnica - TreeSet vs HashSet
Większość języków programowania obsługuje tablice. Jest to struktura danych używana do przechowywania wielu elementów tego samego typu danych. Jeśli istnieje tablica zadeklarowana dla sześciu elementów, nie można jej użyć do przechowywania dziesięciu elementów. Dlatego tablice nie są dynamiczne i nie mogą zmienić rozmiaru tablicy po jej zadeklarowaniu. Języki programowania, takie jak Java, obsługują kolekcje używane do dynamicznego przechowywania danych. Kolekcje obsługują takie operacje, jak dodawanie elementów i usuwanie elementów. W hierarchii kolekcji znajduje się wiele interfejsów i klas. Podstawowym interfejsem jest interfejs kolekcji. Set to interfejs, który rozszerza interfejs Collection. Nie pozwala na powielanie. TreeSet i HashSet to dwie klasy w hierarchii kolekcji i obie implementują interfejs Set. TreeSet to klasa, która implementuje interfejs Set i służy do przechowywania unikatowych elementów w kolejności rosnącej. HashSet to klasa, która implementuje interfejs Set i służy do przechowywania unikalnych elementów za pomocą mechanizmu Hashing. Kluczową różnicą między TreeSet i HashSet jest to, że TreeSet przechowuje elementy w kolejności rosnącej, podczas gdy HashSet nie przechowuje elementów w kolejności rosnącej. Zarówno TreeSet, jak i HashSet przechowują tylko unikalne elementy.
ZAWARTOŚĆ
1. Przegląd i kluczowa różnica
2. Co to jest zestaw drzew
3. Co to jest zestaw skrótów
4. Podobieństwa między zestawem drzew i zestawem skrótów
5. Porównanie obok siebie - zestaw drzew i zestaw skrótów w formie tabelarycznej
6. Podsumowanie
Co to jest zestaw drzew?
Klasa TreeSet implementuje interfejs NavigableSet. Interfejs NavigableSet rozszerza interfejsy SortedSet, Set, Collection i Iterable w porządku hierarchicznym. TreeSet zawsze zachowuje kolejność rosnącą. Jeśli elementy zostały wstawione w kolejności B, A, C, zostaną zapisane jako A, B, C. Metody takie jak add (), remove () mogą być używane z obiektem TreeSet. Do dodania elementu można użyć metody add. Metoda remove służy do usuwania elementu z kolekcji. Oto kilka metod, których można używać z TreeSet.
Rysunek 01: Program z TreeSet
Zgodnie z powyższym programem tworzony jest obiekt typu TreeSet. Elementy danych ciągu są dodawane do tego obiektu przy użyciu metody add. Kolejność wstawiania danych to A, D, A, B, C, D. Za pomocą iteratora zapisane wartości są drukowane na ekranie. Dane wyjściowe to A, B, C, D. Mimo że są dwie litery A i dwie litery D, na wyjściu wyświetlane są po jednej A i po jednej D. Dlatego TreeSet przechowuje unikalne elementy. Nie ma określonej kolejności wstawiania, ale obserwując dane wyjściowe, można zauważyć, że TreeSet zachowuje rosnącą kolejność elementów.
Co to jest HashSet?
Klasa HashSet rozszerza klasę AbstractSet, która implementuje Set Interface. Interfejs Set dziedziczy interfejsy Collection i Iterable w kolejności hierarchicznej. W HashSet nie ma gwarancji, że elementy zachowają kolejność rosnącą i wstawioną kolejność. Jeśli wstawionym zamówieniem było A, B, C, wartości mogą być przechowywane jako C, A, B. Kolejność przechowywania może również mieć wartość A, B, C, ale nie ma gwarancji, że wprowadzone zamówienie lub kolejność rosnąca zostanie zachowana.
Rysunek 02: Program z HashSet
Zgodnie z powyższym programem tworzony jest obiekt typu HashSet. Elementy danych ciągu są dodawane do tego obiektu przy użyciu metody add. Kolejność wstawiania danych to L, R, M, M, R, L. Za pomocą iteratora zapisane wartości są drukowane na ekranie. Wyjście to RL M. Mimo że z każdej są po dwie litery L, R i M, wyświetlana jest tylko jedna litera z każdej. Dlatego HashSet przechowuje unikalne elementy. Obserwując dane wyjściowe, można zauważyć, że nie ma kolejności rosnącej lub że wstawiona kolejność jest zachowana.
Jakie są podobieństwa między TreeSet i HashSet?
- Zarówno TreeSet, jak i HashSet są klasami należącymi do hierarchii kolekcji.
- Zarówno TreeSet, jak i HashSet przechowują tylko unikalne elementy.
- Zarówno TreeSet, jak i HashSet mogą służyć do przechowywania i manipulowania wieloma elementami.
- Zarówno TreeSet, jak i HashSet nie obsługują wstawionej kolejności.
Jaka jest różnica między TreeSet a HashSet?
Porównaj środek artykułu przed tabelą
TreeSet vs HashSet |
|
TreeSet to klasa w hierarchii kolekcji, która służy do przechowywania unikatowych elementów w kolejności rosnącej. | HashSet to klasa w hierarchii kolekcji, która służy do przechowywania unikatowych elementów za pomocą mechanizmu Hashing. |
Przechowywanie elementów | |
TreeSet przechowuje elementy w porządku rosnącym. | HashSet nie przechowuje elementów w kolejności rosnącej. |
Podsumowanie - TreeSet vs HashSet
W programowaniu wymagane jest dynamiczne przechowywanie elementów danych. Języki programowania, takie jak Java, obsługują kolekcje, aby osiągnąć to zadanie. W hierarchii kolekcji znajduje się wiele interfejsów i klas. TreeSet i HashSet to dwie klasy w hierarchii kolekcji. Oba implementują interfejs Set. TreeSet to klasa, która implementuje interfejs Set i służy do przechowywania unikatowych elementów w kolejności rosnącej. HashSet to klasa, która implementuje interfejs Set i służy do przechowywania unikalnych elementów za pomocą mechanizmu Hashing. Różnica między TreeSet i HashSet polega na tym, że TreeSet przechowuje elementy w kolejności rosnącej, podczas gdy HashSet nie przechowuje elementów w kolejności rosnącej. W tym artykule omówiono różnicę między TreeSet i HashSet.