L'hashtable è una particolare struttura dati .
E' costituita da un array di Object , e tramite una particolare funzione , detta di hash , ti permette di trovare un elemento all'interno dell'array senza scandire l'array.
La funzione hash trasforma un valore , ad esempio per un oggetto studente la stringa matricola , in un indice dell'array che contiene quello studente.
Inoltre ogni elemento di quest'array può contenere non un elemento , ma una lista di elementi , in quanto la funzione hash , nel caso ci siano molti elementi da inserire rispetto alle dimensioni dell'array, può ritornare per due oggetti distinti lo stesso indice.
In questo caso si parla di collisioni e gli elementi con uguale valore di hash vengono inseriti in questa lista.
Esistono vari modi per calcolare la funzione Hash:
1)Viene generato un intero k sfruttando opportunamente la rappresentazione in binario di K
il metodo più semplice consiste nel calcolare k come l’intero corrispondente alla stringa
di bit rappresentante K; nel linguaggio Java è possibile generare k tramite il metodo hashCode della classe Object.

2) Si usano vari metodi per trasformare K in un indice del array


-metodo del quadrato centrale
-metodo del modulo (più usato , consiste nell'effettuare l'operazione modules tra il valore K e il numero di elementi della tabella e il risultato è l'indice)
-metodo dell'avvolgimento


Ciauz