• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

HashSet - hashcode i equals

Object Storage Arubacloud
0 głosów
237 wizyt
pytanie zadane 19 lutego 2019 w Java przez must Bywalec (2,980 p.)
Cześć. Czy wyszukiwanie w HashSecie wygląda tak samo jak w Hashmapie, czyli wykorzystujemy hashCode oraz equals()?

Wiem, że w HashMapie jak dodajemy element, to klucz zamieniany jest na hashCode i ta para ląduje w odpowiednik kubełku. Klucze mogą być różne, ale hashCode'y takie same, dlatego może być kilka par w tym samym kubełku.

Czy tak samo jest z HashSet? Nie mamy tutaj klucza, więc od razu wartość jest zamieniana na hashCode i ląduje ona w odpowiednik kubełku?

1 odpowiedź

+1 głos
odpowiedź 19 lutego 2019 przez Asertywny Mądrala (5,430 p.)
wybrane 19 lutego 2019 przez must
 
Najlepsza
HashSet ma w sobie strukturę typu HashMap i po prostu deleguje do niej swoje żądania.

Przykładowo, jeśli masz HashSet zawierający wartości one, two, three, w tle zostanie utworzona HashMap z wpisami mniej więcej:

{
    'one': PRESENT,
    'two': PRESENT,
    'three': PRESENT
}

Dodawanie do setu to po prostu dodawanie do mapy, tak samo usuwanie i szukanie.
komentarz 19 lutego 2019 przez must Bywalec (2,980 p.)
No dobrze. Ale wartość wtedy mamy taką samą. Tylko klucze inne. Więc w Secie działa tak samo wyszukiwanie?

To co włożymy do HashSet jest to zamieniane na hashCode i dodawane do kubka? I później jak jest kilka wartości w danym kubku, bo np dodaliśmy 1 i hashCode tego jest 247 i dodaliśmy 2 i tego hasChode jest też 247 to obydwa te elementy są w tym samym kubku, to używamy equals na tym?
komentarz 19 lutego 2019 przez Asertywny Mądrala (5,430 p.)
Działa tak samo, bo jest to to samo wyszukiwanie:)
komentarz 19 lutego 2019 przez must Bywalec (2,980 p.)
Czyli dobrze napisałem to wyszukiwanie? :D Bo w sumie nie wiem czy dobrze to rozumuję z tego względu, że equals w HashMapie jest na wartościach jeżeli odnajdziemy ten sam kubek, a w Secie mamy wszystkie wartości takie same PRESENT.
komentarz 19 lutego 2019 przez Asertywny Mądrala (5,430 p.)
Dobrze rozumiesz.

Podobne pytania

0 głosów
0 odpowiedzi 459 wizyt
pytanie zadane 26 października 2017 w Java przez kosaa Stary wyjadacz (14,130 p.)
0 głosów
2 odpowiedzi 395 wizyt
pytanie zadane 16 czerwca 2017 w Java przez agigi1988 Nowicjusz (190 p.)
0 głosów
0 odpowiedzi 181 wizyt
pytanie zadane 14 marca 2021 w Java przez amtrax Dyskutant (9,630 p.)

92,551 zapytań

141,393 odpowiedzi

319,523 komentarzy

61,936 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...