Junior
Jak odbywa się przechowywanie obiektów w HashMap?
sobes.tech AI
Odpowiedź od AI
Obiekty są przechowywane jako pary "klucz-wartość". HashMap używa tablicy "wiaderek" (buckets). Przy dodawaniu pary:
- Oblicza się kod hash klucza za pomocą
hashCode(). - Używając kodu hash, określa się indeks wiaderka w tablicy.
- Do tego wiaderka umieszcza się parę
Entry(lub odpowiednik w nowszych wersjach Java), zawierającą klucz, wartość i kod hash. - Jeśli w wiaderku są już obiekty, tworzą one listę powiązaną lub drzewo (w przypadku dużej liczby kolizji).
Przy pobieraniu obiektu po kluczu:
- Oblicza się kod hash klucza.
- Określa się indeks wiaderka.
- Wewnątrz wiaderka szuka się obiektu z kluczem, dla którego
equals()zwracatrue, i którego kody hash są zgodne.
Klucze powinny być niezmienne i mieć poprawnie zaimplementowane metody hashCode() i equals().