Différence entre table de hachage et dictionnaire

Table des matières:

Anonim

Les 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 le dictionnaire est une structure de données fortement typée, il n'est donc possible d'ajouter que les éléments qui satisfont les types de données spécifiés pour la clé et la valeur.

La table de hachage et le 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 touche. La table de hachage n'est pas fortement typée. Par conséquent, le programmeur peut ajouter n'importe quel élément de 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 satisfont 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 chaîne.

Dictionnaire, table de hachage, structures de données

Qu'est-ce que 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. Les 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 chevrons (). Ces crochets déclarent une classe ou une méthode comme 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, les nombres sont 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 string. 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 hebdomadairement. 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 selon 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. Référez-vous au programme ci-dessous. names est un objet de type Dictionary. 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é et valeur de type String. L'impression de la clé et des valeurs sur la console donnera une sortie similaire à la figure 4. La récupération des éléments du dictionnaire imprimera les enregistrements dans le même ordre que les éléments ont été ajoutés. Par conséquent, il maintient l'ordre inséré.

Figure 4: Sortie du programme de dictionnaire

Dans l'ensemble, Dictionary est rapide à exécuter, mais il n'assure pas la sécurité des threads.

Différence entre table de hachage 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. (

Taper

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 la boxe et le déballage 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 la table de hachage ne maintient pas l'ordre inséré. D'un autre côté, récupérer les éléments d'un Dictionnaire maintient l'ordre inséré.

Sécurité du fil

Exemple de syntaxe

Hashtable ht = new Hashtable();

Dictionnaire dictionnaire = nouveau Dictionnaire();.

Conclusion

La différence entre Hashtable et Dictionary est que la 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 le Dictionnaire est une structure de données fortement typée, il n'est donc possible d'ajouter que les éléments qui satisfont à la spécification. types de données pour la clé et la valeur.

Référence:

1. « Classe de table de hachage C # ». Www.tutorialspoint.com, Tutorials Point, 21 juillet 2018, disponible ici.2. "C # Table de hachage." Types de données en C#, Tutoriels Enseignant. Disponible ici.3. "Dictionnaire C # - Javatpoint." Www.javatpoint.com, disponible ici.

Différence entre table de hachage et dictionnaire