Hva er et Hashmap?
I informatikk er en hashmap- eller hasjetabell en form for strukturering av data slik at hvert stykke data er knyttet til et unikt identifikasjonsnummer eller symbol. Dette gjør det enkelt å hente, spesielt fra en stor database som inneholder tusenvis av oppføringer. Hashmap er ikke en spesifikk del av programmet, men refererer heller til en form for dataorganisasjon som tilordner hvert element, kjent som en nøkkel, i databasen til en verdi som står for det elementet. Hash-funksjonen er den delen av programmet som knytter nøklene til verdiene deres.
Telefonbøker fungerer som et utmerket eksempel på en hashmap. Måten telefonboken legges på representerer hashmap-strukturen. Den fokuserer på å koble forskjellige verdier sammen og knytte bare en verdi til en annen tilsvarende term, eller telefonnummer. Navnene i telefonboken er tastene, og telefonnumrene er verdiene som er knyttet til dem. Hver person i boken tildeles et annet nummer, og ingen to er like.
Postkontorbokser fungerer også som en metafor for hashmap. Hver person har en nøkkel til en enkelt boks. Boksen kan inneholde flere informasjonsstykker - regninger, brev, postkort - alt beregnet på den personen som har nøkkelen til boksen. Når riktig tast er satt inn i, eller matchet til riktig boks, åpnes den for å avsløre innholdet.
Perfekt fungerende hashmaps vil koble en nøkkel til en "boks" i en datamaskindatabase. Dessverre kan en faktor som kalles hasjkollisjon oppstå, der to nøkler går til samme boks. Dette skjer når det legges inn en stor mengde data og det ikke er nok "bokser" for å imøtekomme det hele.
I motsetning til en telefonbok eller en postboks, inneholder hashmapper et tredje element i tillegg til nøkkelen og verdien eller boksen den samsvarer med. Det inkluderer også en hasjfunksjon. En person vet hvilken postkasse som er hennes, men en datamaskin må få beskjed om hvilken nøkkel som går til hvilken boks. Hashfunksjonen ser på nøkkelen, oversetter den til en serie med tall eller kode, og kobler den til boksen som inneholder den tilsvarende koden. Navnet på nøkkelen, for eksempel "Mary", er bare der, så det er lettere for folk å tolke, mens den faktiske koden er en streng med tall som er ment for datamaskinen å lese.