Większość języków programowania obsługuje tablice. Jest to struktura danych służąca do przechowywania wielu elementów tego samego typu danych. Jeśli zadeklarowano tablicę 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, które służą do dynamicznego przechowywania danych. Kolekcje obsługują operacje takie jak dodawanie elementów i usuwanie elementów. W hierarchii kolekcji istnieje wiele interfejsów i klas. Podstawowym interfejsem jest interfejs Collection. Zestaw to interfejs rozszerzający interfejs Collection. Nie zezwala na powielanie. TreeSet i HashSet to dwie klasy w hierarchii kolekcji i oba implementują interfejs Set. TreeSet to klasa, która implementuje interfejs Set i służy do przechowywania unikalnych elementów w porządku rosnącym. HashSet to klasa, która implementuje interfejs Set i służy do przechowywania unikalnych elementów za pomocą mechanizmu Hashing. The kluczowa różnica między TreeSet i HashSet jest to TreeSet przechowuje elementy w porządku rosnącym, podczas gdy HashSet nie przechowuje elementów w porządku rosnącym. Zarówno TreeSet, jak i HashSet przechowują tylko unikalne elementy.
1. Przegląd i kluczowa różnica
2. Co to jest TreeSet
3. Co to jest HashSet
4. Podobieństwa między TreeSet i HashSet
5. Porównanie obok siebie - TreeSet vs HashSet w formie tabeli
6. Podsumowanie
Klasa TreeSet implementuje interfejs NavigableSet. Interfejs NavigableSet rozszerza interfejsy SortedSet, Set, Collection i Iterable w kolejności hierarchicznej. TreeSet zawsze utrzymuje rosnącą kolejność. 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 niektóre metody, których można używać z TreeSet.
Rysunek 01: Program z TreeSet
Zgodnie z powyższym programem tworzony jest obiekt typu TreeSet. Łańcuchowe elementy danych są dodawane do tego obiektu za pomocą metody add. Kolejność wstawianych 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 istnieją dwie litery A i dwie litery D, na wyjściu wyświetlana jest jedna A i jedna 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 utrzymuje rosnącą kolejność elementów.
Klasa HashSet rozszerza klasę AbstractSet, która implementuje interfejs Set. Interfejs Set dziedziczy interfejsy Collection i Iterable w kolejności hierarchicznej. W HashSet nie ma gwarancji, że elementy utrzymają porządek rosnący i wstawiony. Jeśli wstawione zamówienie to A, B, C, wówczas wartości mogą być przechowywane jako C, A, B. Kolejność przechowywania może być również A, B, C, ale nie ma gwarancji, że wstawione zamówienie lub kolejność rosnąca zostanie zachowana.
Rysunek 02: Program z HashSet
Zgodnie z powyższym programem tworzony jest obiekt typu HashSet. Łańcuchowe elementy danych są dodawane do tego obiektu za pomocą metody add. Kolejność wstawianych danych to L, R, M, M, R, L. Za pomocą iteratora zapisane wartości są drukowane na ekranie. Dane wyjściowe to R L M. Mimo że z każdej są 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 zachowana jest kolejność wstawiania.
TreeSet vs HashSet | |
TreeSet to klasa w hierarchii kolekcji, która służy do przechowywania unikatowych elementów w porządku rosnącym. | HashSet to klasa w hierarchii kolekcji, która służy do przechowywania unikalnych elementów za pomocą mechanizmu Hashing. |
Przechowywanie elementów | |
TreeSet przechowuje elementy w porządku rosnącym. | HashSet nie przechowuje elementów w porządku rosnącym. |
Podczas programowania wymagane jest dynamiczne przechowywanie elementów danych. Języki programowania, takie jak Java, obsługują Kolekcje, aby osiągnąć to zadanie. W hierarchii kolekcji istnieje 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 unikalnych elementów w porządku rosnącym. 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 porządku rosnącym, podczas gdy HashSet nie przechowuje elementów w porządku rosnącym. W tym artykule omówiono różnicę między TreeSet a HashSet.
1. „TreeSet w Javie - javatpoint.” JavaPoint. Dostępny tutaj
2. „HashSet w Javie - javatpoint.” JavaPoint . Dostępny tutaj