Junior — Middle
Kunt u de interne structuur en werking van HashMap in de Java-taal uitleggen?
sobes.tech AI
Antwoord van AI
HashMap in Java is een datastructuur voor het opslaan van sleutel-waardeparen met snelle toegang via de sleutel.
Interne structuur:
- HashMap gebruikt een array van buckets.
- Voor de sleutel wordt een hashCode berekend, die vervolgens wordt omgezet in een array-index.
- In elke bucket worden elementen met dezelfde index opgeslagen, meestal in de vorm van een gekoppelde lijst of boom (met Java 8, bij veel collisions).
Werking:
- Bij het invoegen van een object wordt de index berekend op basis van de hash van de sleutel.
- Als de bucket leeg is, wordt het element daar geplaatst.
- Als de bucket bezet is, wordt de gelijkheid van de sleutels (equals) gecontroleerd om de waarde bij te werken of een nieuw element toe te voegen.
- Bij zoeken op sleutel wordt ook de index berekend en worden de elementen in de bucket doorlopen om de match te vinden.
Voorbeeld:
HashMap<String, Integer> map = new HashMap<>();
map.put("apple", 5);
int value = map.get("apple"); // 5
Op deze manier garandeert HashMap een gemiddelde toegangstijd van O(1), maar bij veel collisions kan het degraderen tot O(n).