Różnica między TreeSet i HashSet

Kluczowa różnica - TreeSet vs HashSet
 

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.

ZAWARTOŚĆ

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

Co to jest TreeSet?

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.

Co to jest HashSet?

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.

Jakie są podobieństwa między TreeSet a 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ą być używane do przechowywania i manipulowania wieloma elementami.
  • Zarówno TreeSet, jak i HashSet nie utrzymują wstawionej kolejności.

Jaka jest różnica między TreeSet a HashSet?

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.

Podsumowanie - TreeSet vs HashSet

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.

Odniesienie:

1. „TreeSet w Javie - javatpoint.” JavaPoint. Dostępny tutaj
2. „HashSet w Javie - javatpoint.” JavaPoint  Dostępny tutaj