HashTable

di Marco Leoncini, in FCL ovvero la libreria di classi del framework,

Il namespace System.Collections contiene un insieme di classi che definiscono varie raccolte di oggetti, tra queste una con cui sto "giocando molto" è il tipo Hashtable, un insieme di combinazioni chiave valore che presenta una particolare ottimizzazione per la ricerca.

Più precisamente la classe è organizzata in sottogruppi virtuali chiamati bucket, generati utilizzando il codice Hash della chiave, ne consegue che ogni oggetto archiviato deve essere in grado di generare il proprio codice Hash.

nel momento in cui un nuovo oggetto viene aggiunto alla collezione, viene generato il suo codice Hash e collocato nel bucket appropriato, quando si ricerca un elemento, il suo codice Hash viene calcolato e cercato solo bel bucket corrispondete, il fattore di caricamento del Hashtable determina il rapporto massimo tra bucket ed elementi al suo interno, valori più piccoli determinano tempi di ricerca più brevi ma un utilizzo maggiore di memoria , il valore predefinito è 1 ed è possibile cambiarlo in fase di creazione.
L'utilizzo del tipo HashTable è semplicissimo, un overload del costruttore non richiede parametri, quindi per crearne una nuova istanza:

myHashTable = new Hashtable();

a questo punto è possibile inserire nuovi oggetti nella collezione utilizzando il metodo Add o la propietà item per modificare il valore di una chiave esistente.
è inoltre possibile inserire nuovi elemeti tramite la propietà item specifcando una chiave non esistente nella HashTable.

myHashTable.Add("chiave" , "valore");

myHashTable["chiave"] = "valore" ;

tramite il metodo Remove è possibile eliminare la coppia chiave valore della collezione

myHashTable.Remove ("chiave" , "valore");

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Nella stessa categoria
I più letti del mese