Differenza tra Hashtable e dizionario

Il differenza principale tra Hashtable e Dictionary è quello Hashtable è una struttura di dati debolmente tipizzata, quindi è possibile aggiungere chiavi e valori di qualsiasi tipo mentre il dizionario è una struttura di dati fortemente tipizzata, quindi è possibile aggiungere solo gli elementi che soddisfano i tipi di dati specificati sia per la chiave che per il valore.

Hashtable e dizionario sono due strutture dati principali. Entrambi possono contenere i dati come coppie di valori chiave. Un Hashtable o un dizionario possono contenere solo chiavi univoche. Il programmatore può trovare o rimuovere un valore specifico usando il tasto. Hashtable non è fortemente digitato. Pertanto, il programmatore può aggiungere qualsiasi elemento della coppia chiave-valore all'Hashtable. D'altra parte, il dizionario è fortemente digitato. Il programmatore dovrebbe specificare i tipi di dati delle chiavi e dei valori. Non è possibile aggiungere elementi che non soddisfano i tipi di dati specificati. Ad esempio, se il dizionario ha un tipo generico , il programmatore può solo aggiungere elementi con chiavi di tipo int e valori di tipo stringa.

Aree chiave coperte

1. Che cos'è il tipo di dati generico
     - Definizione
2. Cos'è Hashtable
     - Definizione, Funzionalità
3. Cos'è il dizionario
     - Definizione, Funzionalità
4. Differenza tra Hashtable e dizionario
     - Confronto tra le principali differenze

Parole chiave

Dizionario, Hashtable, Strutture dati

Che cos'è il tipo di dati generico

Un tipo di dati generici è un tipo di dati che consente all'utente di definire classi e metodi con segnaposto. I compilatori come C # possono sostituire i segnaposto con il tipo di dati specificato al momento della compilazione. È usato per creare classi e metodi per scopi generali. Quando si definisce una classe generica, il programmatore deve usare parentesi angolari (<>). Queste parentesi dichiarano una classe o un metodo come tipo generico.

Cos'è Hashtable

Un Hashtable è una struttura dati che implementa un tipo di dati astratto array associativo, una struttura in grado di mappare la chiave ai valori. Non è un tipo di dati generico. Fare riferimento a un pezzo di codice come segue.

Figura 1: programma C # con Hashtable

Nel programma sopra, numeri è un oggetto di tipo Hashtable. Le coppie chiave-valore vengono aggiunte a Hashtable. Dalla proposizione 15 alla 17, le chiavi sono di tipo int e i valori sono di tipo stringa. Nell'istruzione 18, la chiave e il valore sono stringhe. Un Hashtable è una struttura di dati digitata settimanalmente. Pertanto, il programmatore può aggiungere chiavi e valori di qualsiasi tipo a Hashtable.

Figura 2: output del programma HashTable

L'output del programma è come sopra. L'Hashtable non stampa i record in base all'ordine in cui gli elementi sono stati aggiunti. Pertanto, non mantiene l'ordine inserito.

Cos'è un dizionario

Un dizionario usa il concetto di Hashtable. È un tipo di dati generico. Fare riferimento al programma seguente. nomi è un oggetto del tipo di dizionario. Ha tipi di dati specifici da memorizzare per chiavi e valori. Secondo questo programma, i tipi generici sono definiti come . Pertanto, quando si aggiungono elementi al dizionario, sia le chiavi che i valori devono essere di tipo stringa.

Figura 3: programma C # con dizionario

Tutti gli elementi aggiunti al dizionario precedente hanno coppie chiave e valore di tipo String. Stampando la chiave e i valori sulla console si otterrà un risultato simile alla figura 4. Recupero degli elementi dal Dizionario stamperà i record nello stesso ordine in cui sono stati aggiunti gli elementi. Pertanto, mantiene l'ordine inserito.

Figura 4: Output del programma di dizionario

Complessivamente, il dizionario è veloce in esecuzione ma non fornisce la sicurezza del thread.

Differenza tra Hashtable e dizionario

Definizione

Un Hashtable è una struttura dati che implementa un tipo di dati astratto array associativo, una struttura in grado di mappare la chiave ai valori. Un dizionario è una struttura dati basata su Hashtable che memorizza i valori sulla base delle chiavi.

Aggiungere elementi

Inoltre, Hashtable è una struttura di dati debolmente tipizzata. Pertanto, il programmatore può aggiungere chiavi e valori di qualsiasi tipo di oggetto a Hashtable. Un dizionario è una struttura di dati fortemente tipizzata. (

genere

Inoltre, Hashtable non è generico mentre Dizionario è di tipo generico.

Velocità di esecuzione

Inoltre, in Hashtable c'è boxe e unboxing ma non nel dizionario. Il dizionario consuma memoria minima ed esegue più velocemente di Hashtable.

Recupero degli elementi

Il recupero degli elementi in Hashtable non mantiene l'ordine inserito. D'altra parte, il recupero degli elementi da un dizionario mantiene l'ordine inserito.

Filo di sicurezza

Inoltre, Hashtable offre più sicurezza sulla filettatura. Supporta più thread di lettura e un singolo thread di scrittura. Il dizionario non fornisce la sicurezza del thread. Per implementare la sicurezza dei thread, il programmatore dovrebbe scrivere il proprio codice sincronizzato.

Sintassi di esempio

Hashtable ht = new Hashtable ();

Dizionario dizionario = nuovo dizionario();.

Conclusione

La differenza tra Hashtable e Dictionary è che Hashtable è una struttura di dati debolmente tipizzata, quindi è possibile aggiungere chiavi e valori di qualsiasi tipo mentre il Dizionario è una struttura di dati fortemente tipizzata, quindi è possibile solo aggiungere gli elementi che hanno soddisfatto la specifica tipi di dati sia per la chiave che per il valore.

Riferimento:

1. "C # Hashtable Class." Www.tutorialspoint.com, Tutorials Point, 21 luglio 2018, disponibile qui.
2. "C # Hashtable." Tipi di dati in C #, insegnante di tutorial. Disponibile qui.
3. "Dizionario C # - Javatpoint". Www.javatpoint.com, disponibile qui.