Een HashMap is een kant-en-klare datastructuur die informatie opslaat als sleutel-waarde-paren, waarmee je elke waarde in één stap via de sleutel ophaalt. Het is de praktische vorm van een hash table die talen als Java standaard meeleveren, zodat developers de zoeklogica niet zelf hoeven te bouwen.

Stel je een telefoonboek voor waar je een naam opzoekt en meteen het nummer ziet. Je leest niet elke regel; je gaat direct naar degene die je wilt. Een HashMap werkt net zo: de sleutel is de naam en de waarde is het nummer, en de structuur springt regelrecht naar het antwoord. Daarom blijft hij snel, zelfs bij enorme hoeveelheden data, een eigenschap die Big O-notatie formeel vastlegt.

In Java is HashMap een van de meestgebruikte collecties in alledaagse code. Andere talen noemen hetzelfde idee een dictionary of een map, maar het principe verandert nooit: één sleutel, één waarde, in een oogwenk gevonden.

Twee gewoontes scheiden werkende code van code vol bugs. Ten eerste houdt een HashMap zijn items in geen enkele betrouwbare volgorde, dus wil je ze gesorteerd op naam of datum, dan moet je dat zelf doen of een andere structuur pakken. Ten tweede levert vragen om een sleutel die er nooit in zat niets op in plaats van een foutmelding, wat stilletjes crashes veroorzaakt als je vergeet te controleren. Beide eigenschappen vooraf kennen scheelt later een hoop verwarrend zoekwerk.

Een derde valkuil is de sleutel zelf. Twee sleutels gelden alleen als gelijk als de taal ze als gelijk ziet, dus een eigen object als sleutel gebruiken zonder dat netjes te regelen, betekent dat ‘dezelfde’ klant twee keer in de map belandt. Daarom kiezen developers vaak voor simpele, vaste sleutels als een e-mailadres of een ID, waar geen twijfel over bestaat.

Bij TopDevs gebruiken we een HashMap zodra de code van een klant dingen via een unieke sleutel moet opzoeken, want het houdt dat deel van het systeem simpel en snel.