Cos’è una Hashmap?

In informatica, una hashmap o una tabella hash è una forma di strutturazione dei dati in modo che ogni dato sia collegato a un numero o simbolo di identificazione univoco. Ciò consente un facile recupero, soprattutto da un ampio database contenente migliaia di voci. L’hashmap non è una parte specifica del programma, ma si riferisce piuttosto a una forma di organizzazione dei dati che assegna ogni elemento, noto come chiave, nel database a un valore che rappresenta quell’elemento. La funzione hash è la parte del programma che collega le chiavi ai loro valori.

Gli elenchi telefonici sono un eccellente esempio di hashmap. Il modo in cui è strutturata la rubrica rappresenta la struttura hashmap. Si concentra sul collegamento di valori diversi e sul collegamento di un solo valore a un altro termine o numero di telefono corrispondente. I nomi in rubrica sono i tasti ei numeri di telefono sono i valori ad essi associati. Ad ogni persona nel libro viene assegnato un numero diverso e non ce ne sono due uguali.

Le caselle postali fungono anche da metafora per l’hashmap. Ogni persona ha la chiave di una singola scatola. La scatola può contenere più informazioni – fatture, lettere, cartoline – tutte destinate alla persona che ha la chiave della scatola. Quando la chiave corretta viene inserita o abbinata alla casella corretta, si apre per rivelarne il contenuto.

Hashmap perfettamente funzionanti collegherebbero una chiave a una “scatola” di memoria in un database del computer. Sfortunatamente, può verificarsi un fattore noto come collisione di hash, in cui due chiavi vanno nella stessa casella. Questo accade quando viene inserita una grande quantità di dati e non ci sono abbastanza “scatole” per accoglierli tutti.

A differenza di una rubrica o di una casella postale, le hashmap includono un terzo elemento oltre alla chiave e al valore o casella a cui corrisponde. Include anche una funzione hash. Una persona sa quale casella postale è sua, ma a un computer deve essere detto quale chiave va a quale casella. La funzione hash esamina la chiave, la traduce in una serie di numeri o codici e la collega alla casella che contiene il codice corrispondente. Il nome della chiave, ad esempio “Mary”, è presente solo in modo che sia più facile da interpretare per le persone, mentre il codice effettivo è una stringa di numeri che deve essere letta dal computer.