Sobes.tech
Junior — Middle

Può spiegare il principio di funzionamento di una tabella hash e come vengono memorizzati i dati in essa?

sobes.tech AI

Risposta dell'AI

Una tabella hash è una struttura dati che garantisce un accesso molto rapido ai dati tramite una chiave. Il suo funzionamento si basa sull'uso di una funzione hash, che trasforma la chiave in un indice di un array dove viene memorizzato il valore corrispondente.

Quando si deve salvare una coppia chiave-valore, la funzione hash calcola l'indice, e i dati vengono inseriti nella cella dell'array a quell'indice. Durante la ricerca per chiave, la funzione hash calcola nuovamente l'indice, e il valore necessario viene trovato rapidamente.

Se due chiavi diverse producono lo stesso indice (collisione), di solito si utilizza il metodo delle catene: nella cella viene memorizzato un elenco di tutti gli elementi con quell'indice, e la ricerca avviene in questa lista.

Esempio in Dart (Flutter):

void main() {
  Map<String, int> hashTable = {};
  hashTable['apple'] = 5;
  hashTable['banana'] = 3;

  print(hashTable['apple']); // 5
}

Qui, Map è un'implementazione di una tabella hash, dove la chiave è una stringa e il valore è un numero.