Cos'è un hashmap?
Nell'informatica, un hashmap o una tabella hash è una forma di dati di strutturazione in modo che ogni pezzo di dati sia collegato a un numero di identificazione o simbolo 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 ciascun elemento, noto come chiave, nel database a un valore che sta per quell'elemento. La funzione hash è la parte del programma che collega le chiavi ai loro valori.
Le librerie telefoniche servono come eccellente esempio di hashmap. Il modo in cui viene stabilita la rubrica rappresenta la struttura di hashmap. Si concentra sul collegamento di valori diversi insieme e sul collegamento di un solo valore a un altro termine corrispondente o numero di telefono. I nomi nella rubrica sono le chiavi e i numeri di telefono sono i valori ad essi associati. A ogni persona nel libro viene assegnato un numero diverso e non ci sono due uguali.
Anche le caselle di ufficio postale servono comeuna 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 per la scatola. Quando la chiave corretta viene inserita o abbinata alla casella corretta, si apre per rivelare il suo contenuto.
HashMaps perfettamente funzionante collegherebbe una tastiera a una "casella" di memoria in un database di computer. Sfortunatamente, può verificarsi un fattore noto come collisione hash, in cui due chiavi vanno nella stessa scatola. Ciò accade quando viene inserita una grande quantità di dati e non ci sono abbastanza "scatole" per adattarsi a tutto.
A differenza di una rubrica o di una casella postale, le hashmaps includono un terzo elemento oltre alla chiave e al valore o alla casella che corrisponde. Include anche una funzione hash. Una persona sa quale casella postale è suo, ma un computer deve essere detto quale chiave va a quale casella. L'hash fuNction guarda la chiave, la traduce in una serie di numeri o codice e lo collega alla casella che contiene il codice corrispondente. Il nome della chiave, come "Mary", è solo lì, quindi è più facile interpretare le persone, mentre il codice effettivo è una stringa di numeri destinati a leggere il computer.