Što je Hashmap?

U informatici, hashmap ili hash tablica oblik je strukturiranja podataka tako da je svaki dio podataka povezan s jedinstvenim identifikacijskim brojem ili simbolom. To omogućuje jednostavno pronalaženje, posebno iz velike baze podataka koja sadrži tisuće unosa. Hashmap nije poseban dio programa, već se odnosi na oblik organizacije podataka koji svakoj stavci, poznatoj kao ključ, u bazi podataka dodjeljuje vrijednost koja predstavlja tu stavku. Hash funkcija je dio programa koji povezuje ključeve s njihovim vrijednostima.

Telefonski imenici služe kao izvrstan primjer hashmapa. Način na koji je telefonski imenik postavljen predstavlja strukturu hashmapa. Usredotočuje se na povezivanje različitih vrijednosti zajedno i povezivanje samo jedne vrijednosti s jednim drugim odgovarajućim pojmom ili telefonskim brojem. Imena u telefonskom imeniku su tipke, a telefonski brojevi su vrijednosti povezane s njima. Svakoj osobi u knjizi dodijeljen je drugačiji broj i ne postoje dvije iste.

Poštanski sandučići također služe kao metafora za hashmapu. Svaka osoba ima ključ od jedne kutije. Kutija može sadržavati više informacija – račune, pisma, razglednice – sve namijenjene pojedincu koji ima ključ kutije. Kada se ispravan ključ umetne u ispravnu kutiju ili uskladi s njim, otvara se kako bi otkrio svoj sadržaj.

Savršeno funkcionalne hashmape povezale bi jedan ključ s jednom memorijskom “kutijom” u računalnoj bazi podataka. Nažalost, može doći do faktora poznatog kao hash kolizija, gdje dva ključa idu u isti okvir. To se događa kada se unese velika količina podataka i nema dovoljno “kutija” da se sve to smjesti.

Za razliku od telefonskog imenika ili poštanskog pretinca, hashmape uključuju i treći element uz ključ i vrijednost ili okvir koji mu odgovara. Također uključuje hash funkciju. Osoba zna koji je poštanski sandučić njezin, ali kompjuteru se mora reći koji ključ ide u koji pretinac. Hash funkcija gleda ključ, prevodi ga u niz brojeva ili koda i povezuje ga s okvirom koji sadrži odgovarajući kod. Naziv ključa, kao što je “Mary”, nalazi se samo tamo kako bi ga ljudi lakše protumačili, dok je stvarni kod niz brojeva namijenjen za čitanje računala.