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:
- Wordt de hash-code van de sleutel berekend met
hashCode(). - Met behulp van de hash-code wordt de index van de emmer in de array bepaald.
- In deze emmer wordt een
Entry-paar geplaatst (of een gelijkwaardig object in nieuwere Java-versies), dat de sleutel, waarde en hash-code bevat. - 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:
- Wordt de hash-code van de sleutel berekend.
- Wordt de index van de emmer bepaald.
- Binnen de emmer wordt gezocht naar een object met een sleutel waarvoor
equals()trueretourneert en waarvan de hash-codes overeenkomen.
Sleutels moeten onveranderlijk zijn en correct geïmplementeerde hashCode() en equals() methoden hebben.