Différence entre Hashtable et Dictionnaire

le différence principale entre Hashtable et Dictionary est que le Hashtable est une structure de données faiblement typée. Il est donc possible d'ajouter des clés et des valeurs de n'importe quel type, tandis que Dictionnaire est une structure de données fortement typée. Vous ne pouvez donc ajouter que les éléments correspondant aux types de données spécifiés pour la clé et la valeur..

Hashtable et dictionnaire sont deux structures de données principales. Ils peuvent tous les deux contenir des données sous forme de paires clé-valeur. Une table de hachage ou un dictionnaire ne peut contenir que des clés uniques. Le programmeur peut rechercher ou supprimer une valeur spécifique à l'aide de la clé. Hashtable n'est pas fortement typé. Par conséquent, le programmeur peut ajouter n'importe quel élément de la paire clé-valeur à la table de hachage. Par contre, le dictionnaire est fortement typé. Le programmeur doit spécifier les types de données des clés et des valeurs. Il n'est pas possible d'ajouter des éléments qui ne répondent pas aux types de données donnés. Par exemple, si le dictionnaire a un type générique , le programmeur peut uniquement ajouter des éléments avec des clés de type int et des valeurs de type de chaîne.

Zones clés couvertes

1. Quel est le type de données générique
     - Définition
2. Qu'est-ce que Hashtable?
     - Définition, fonctionnalité
3. Quel est le dictionnaire
     - Définition, fonctionnalité
4. Différence entre Hashtable et Dictionnaire
     - Comparaison des différences clés

Mots clés

Dictionnaire, table de hachage, structures de données

Quel est le type de données générique

Un type de données générique est un type de données qui permet à l'utilisateur de définir des classes et des méthodes avec des espaces réservés. Des compilateurs tels que C # peuvent remplacer les espaces réservés par le type de données spécifié au moment de la compilation. Il est utilisé pour créer des classes et des méthodes à usage général. Lors de la définition d'une classe générique, le programmeur doit utiliser des crochets angulaires (<>). Ces crochets déclarent une classe ou une méthode en tant que type générique.

Qu'est-ce que Hashtable?

Une table de hachage est une structure de données qui implémente un type de données abstrait de tableau associatif, une structure qui peut mapper la clé sur des valeurs. Ce n'est pas un type de données générique. Référez-vous un morceau de code comme suit.

Figure 1: programme C # avec Hashtable

Dans le programme ci-dessus, Nombres est un objet de type Hashtable. Les paires clé-valeur sont ajoutées à la table de hachage. De l'instruction 15 à 17, les clés sont de type int et les valeurs sont de type chaîne. Dans l'instruction 18, la clé et la valeur sont des chaînes. Une table de hachage est une structure de données typée chaque semaine. Par conséquent, le programmeur peut ajouter des clés et des valeurs de tout type à la table de hachage..

Figure 2: Sortie du programme HashTable

La sortie du programme est comme ci-dessus. La table de hachage n'imprime pas les enregistrements dans l'ordre dans lequel les éléments ont été ajoutés. Par conséquent, il ne conserve pas l'ordre inséré.

Qu'est-ce qu'un dictionnaire

Un dictionnaire utilise le concept de Hashtable. C'est un type de données générique. Voir le programme ci-dessous. des noms est un objet de type Dictionnaire. Il a des types de données spécifiques à stocker pour les clés et les valeurs. Selon ce programme, les types génériques sont définis comme . Par conséquent, lors de l'ajout d'éléments au dictionnaire, les clés et les valeurs doivent être de type chaîne.

Figure 3: programme C # avec dictionnaire

Tous les éléments ajoutés au dictionnaire ci-dessus ont des paires clé / valeur de type String. L’impression de la clé et des valeurs sur la console donnera un résultat similaire à celui de la figure 4. La récupération des éléments à partir de Dictionnaire imprimera les enregistrements dans le même ordre que celui où les éléments ont été ajoutés. Par conséquent, il maintient la commande insérée.

Figure 4: Résultat du programme de dictionnaire

Globalement, Dictionary est rapide à exécuter mais ne fournit pas de sécurité de thread.

Différence entre Hashtable et Dictionnaire

Définition

Une table de hachage est une structure de données qui implémente un type de données abstrait de tableau associatif, une structure qui peut mapper la clé sur des valeurs. Un dictionnaire est une structure de données basée sur Hashtable qui stocke des valeurs sur la base de clés.

Ajout d'éléments

De plus, Hashtable est une structure de données faiblement typée. Par conséquent, le programmeur peut ajouter des clés et des valeurs de tout type d'objet à la table de hachage. Un dictionnaire est une structure de données fortement typée. (

Type

De plus, Hashtable n'est pas générique alors que Dictionary est de type générique.

Vitesse d'exécution

De plus, il y a boxing et unboxing dans Hashtable mais pas dans Dictionary. Le dictionnaire consomme un minimum de mémoire et s'exécute plus rapidement que la table de hachage.

Récupérer les éléments

La récupération des éléments dans Hashtable ne conserve pas l'ordre inséré. D'autre part, récupérer les éléments d'un dictionnaire maintient l'ordre inséré.

Sécurité du fil

De plus, Hashtable fournit plus de sécurité des threads. Il prend en charge plusieurs threads de lecture et un seul thread d'écriture. Le dictionnaire n'assure pas la sécurité des threads. Pour implémenter la sécurité des threads, le programmeur doit écrire son propre code synchronisé.

Exemple de syntaxe

Hashtable ht = new Hashtable ();

dictionnaire dictionary = nouveau dictionnaire();.

Conclusion

La différence entre Hashtable et Dictionary réside dans le fait que Hashtable est une structure de données faiblement typée. Il est donc possible d’ajouter des clés et des valeurs de tout type, tandis que Dictionnaire est une structure de données fortement typée. Il est donc uniquement possible d’ajouter les éléments satisfaisant les critères spécifiés. types de données pour la clé et la valeur.

Référence:

1. “C # Hashtable Class.”. Www.tutorialspoint.com, Point sur les tutoriels, 21 juillet 2018, disponible ici..
2. «Table de hachage C #». Types de données en C #, enseignant de didacticiels. Disponible ici.
3. “Dictionnaire C # - Javatpoint.” Www.javatpoint.com, disponible ici.