Sobes.tech
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).