Sobes.tech
Junior

Hoe wordt het opslaan van objecten in HashMap uitgevoerd?

sobes.tech AI

Antwoord van AI

Objecten worden opgeslagen als "sleutel-waarde" paren. HashMap gebruikt een array van "emmers" (buckets). Bij het toevoegen van een paar:

  1. Wordt de hash-code van de sleutel berekend met hashCode().
  2. Met behulp van de hash-code wordt de index van de emmer in de array bepaald.
  3. In deze emmer wordt een Entry-paar geplaatst (of een gelijkwaardig object in nieuwere Java-versies), dat de sleutel, waarde en hash-code bevat.
  4. Als er al objecten in de emmer zijn, vormen ze een gekoppelde lijst of een boom (bij veel collisions).

Bij het ophalen van een object op basis van de sleutel:

  1. Wordt de hash-code van de sleutel berekend.
  2. Wordt de index van de emmer bepaald.
  3. Binnen de emmer wordt gezocht naar een object met een sleutel waarvoor equals() true retourneert en waarvan de hash-codes overeenkomen.

Sleutels moeten onveranderlijk zijn en correct geïmplementeerde hashCode() en equals() methoden hebben.