Ce este un Hashmap?

În informatică, un hashmap sau un tabel hash este o formă de structurare a datelor, astfel încât fiecare parte de date să fie legată de un număr sau simbol unic de identificare. Acest lucru permite o recuperare ușoară, în special dintr-o bază de date mare care conține mii de intrări. Hashmap nu este o parte specifică a programului, ci se referă mai degrabă la o formă de organizare a datelor care atribuie fiecărui element, cunoscut sub numele de cheie, din baza de date o valoare care reprezintă acel element. Funcția hash este partea din program care leagă cheile la valorile lor.

Agendele telefonice servesc ca un exemplu excelent de hashmap. Modul în care este aranjată agenda telefonică reprezintă structura hashmap. Se concentrează pe legarea diferitelor valori împreună și pe conectarea unei singure valori la un alt termen sau număr de telefon corespunzător. Numele din agenda telefonică sunt cheile, iar numerele de telefon sunt valorile asociate acestora. Fiecărei persoane din carte i se atribuie un număr diferit și nu există două la fel.

Cutiile poștale servesc și ca metaforă pentru hashmap. Fiecare persoană are o cheie pentru o singură cutie. Cutia poate conține mai multe informații – facturi, scrisori, cărți poștale – toate destinate persoanei care deține cheia cutiei. Când cheia corectă este introdusă în cutia corectă sau se potrivește cu aceasta, se deschide pentru a-și dezvălui conținutul.

Hashmaps-ul perfect funcțional ar lega o cheie la o „cutie” de memorie dintr-o bază de date computerizată. Din păcate, poate apărea un factor cunoscut sub numele de coliziune hash, în care două chei merg la aceeași casetă. Acest lucru se întâmplă atunci când este introdusă o cantitate mare de date și nu există suficiente „casete” pentru a le găzdui pe toate.

Spre deosebire de o carte telefonică sau o cutie poștală, hashmaps-urile includ un al treilea element în plus față de cheie și valoarea sau caseta cu care se potrivește. Include și o funcție hash. O persoană știe care cutie poștală este a ei, dar unui computer trebuie să i se spună ce cheie merge la care cutie. Funcția hash se uită la cheie, o traduce într-o serie de numere sau cod și o leagă de caseta care conține codul corespunzător. Numele cheii, cum ar fi „Maria”, este doar acolo, astfel încât oamenii să fie mai ușor de interpretat, în timp ce codul real este un șir de numere menit să fie citit de computer.