Junior — Middle
Kunt u uitleggen hoe toegang wordt verkregen tot een element binnen een HashMap-structuur?
sobes.tech AI
Antwoord van AI
In Java wordt HashMap geïmplementeerd op basis van een array van buckets, elk bevat een gekoppelde lijst of een boom (vanaf Java 8) van elementen met dezelfde hash-code.
Toegang tot een element gebeurt als volgt:
- De hash-code van de sleutel wordt berekend met
hashCode(). - De hash-code wordt omgezet in een index van de bucket-array (meestal via de operatie
hash & (capacity - 1)). - In de geselecteerde bucket wordt gezocht naar het element met de sleutel gelijk aan de gezochte (vergelijking via
equals()). - Als het element wordt gevonden, wordt de eraan gekoppelde waarde geretourneerd.
Voorbeeld:
HashMap<String, Integer> map = new HashMap<>();
map.put("key", 42);
Integer value = map.get("key"); // hash wordt berekend, bucket wordt gekozen, element wordt gezocht
Zo bestaat de toegang tot een element uit het berekenen van de hash, het kiezen van de bucket en het zoeken op de sleutel binnen de bucket.