Che cos'è una hashmap?
Nell'informatica, una tabella hashmap o hash è una forma di strutturazione dei dati in modo che ogni pezzo di dati sia collegato a un numero o simbolo di identificazione univoco. Ciò consente un facile recupero, soprattutto da un grande 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.
Le rubriche telefoniche servono come eccellente esempio di hashmap. Il modo in cui è organizzata la rubrica rappresenta la struttura hashmap. Si concentra sul collegamento di valori diversi tra loro e sul collegamento di un solo valore a un altro termine o numero di telefono corrispondente. I nomi nella rubrica sono i tasti e i numeri di telefono sono i valori ad essi associati. A ogni persona nel libro viene assegnato un numero diverso e non ne esistono due uguali.
Le caselle postali servono anche come metafora dell'hashmap. Ogni persona ha una chiave per 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 associata alla casella corretta, si apre per rivelarne il contenuto.
Gli hashmap perfettamente funzionanti collegherebbero una chiave a una "scatola" di memoria in un database di computer. Sfortunatamente, può verificarsi un fattore noto come collisione hash, in cui due chiavi vanno nella stessa casella. Ciò accade quando viene immessa una grande quantità di dati e non ci sono "caselle" sufficienti per accogliere tutto.
A differenza di una rubrica o di una casella postale, gli hashaps includono un terzo elemento oltre alla chiave e al valore o alla casella corrispondente. Include anche una funzione hash. Una persona sa quale casella postale è sua, ma a un computer deve essere comunicato quale chiave va in quale casella. La funzione hash esamina la chiave, la traduce in una serie di numeri o codice e la collega alla casella che contiene il codice corrispondente. Il nome della chiave, come "Mary", è solo lì, quindi è più facile da interpretare per le persone, mentre il codice effettivo è una stringa di numeri che il computer deve leggere.