Maison > Article > développement back-end > Comment stocker/mettre à jour les éléments de la table de hachage ?
Une table de hachage est une structure de données constituée d'une collection de paires clé-valeur. Une collection de tables de hachage utilise une fonction de hachage pour calculer le code de hachage d'une clé. Une table de hachage peut également être définie comme une collection non universelle de paires clé-valeur.
Le code de hachage de chaque clé est calculé à l'aide d'une fonction de hachage et stocké dans différents compartiments en interne. Lors de l'accès à une valeur, fait correspondre ce code de hachage avec le code de hachage de la clé spécifiée et renvoie le résultat.
Contrairement à d'autres structures de données telles que les piles, les files d'attente, ArrayList, etc. qui stockent des valeurs simples, les collections de tables de hachage stockent des valeurs doubles sous la forme de paires clé-valeur. Chaque paire clé-valeur forme un élément de la table de hachage.
Discutons dans cet article de la manière de stocker et de mettre à jour des éléments dans une collection de tables de hachage.
Nous pouvons stocker ou ajouter des éléments dans la table de hachage et également mettre à jour les éléments existants dans la table de hachage. Ce sont deux opérations différentes que nous pouvons effectuer sur une collection de tables de hachage.
Pour ajouter des éléments à la collection de tables de hachage, nous utilisons la méthode "Add" de la classe Hashtable fournie en C#.
Pour mettre à jour les éléments de la table de hachage, nous utilisons l'opérateur d'affectation pour remplacer la valeur.
Nous pouvons ajouter des éléments à la table de hachage de deux manières.
Utiliser l'initialiseur pour la table de hachage
Utilisez la méthode Ajouter
Dans la première méthode utilisant l'initialiseur, nous initialisons l'objet de table de hachage à l'aide de paires clé-valeur tout en déclarant l'objet de table de hachage.
Cela créera un objet de table de hachage avec des paires clé-valeur initiales. Passons en revue un exemple de programmation pour montrer comment ajouter des éléments à une table de hachage à l'aide de l'initialisation.
using System; using System.Collections; class MyHashTable { public static void Main() { // Create a Hashtable Hashtable prog_lang = new Hashtable(){{"001", "C#"}, {"002", "C++"}, {"003", "Java"}, {"004", "Python"}, {"005", "Perl"} }; //print original hashtable Console.WriteLine("Hashtable items:"); foreach(DictionaryEntry entry in prog_lang){ Console.WriteLine("{0} => {1} ", entry.Key, entry.Value); } } }
Dans cet exemple, nous créons d'abord un objet de type Hashtable nommé "prog_lang" à l'aide du mot-clé "new" et l'initialisons avec cinq paires clé-valeur de nombres (clés) et de noms de langage de programmation (valeurs).
Nous imprimons ensuite le contenu de cette table de hachage en parcourant la table de hachage en utilisant "foreach".
Le programme génère ce qui suit.
Hashtable items: 005 => Perl 004 => Python 002 => C++ 003 => Java 001 => C#
Le programme affiche uniquement le contenu de la table de hachage.
La méthode add est fournie par la classe Hashtable et peut être utilisée pour ajouter des éléments à l'objet Hashtable. Les méthodes d’ajout ont la syntaxe générale suivante.
HashTable.add("key", "value")
Le programme suivant illustre la méthode Add pour stocker des éléments dans une collection de tables de hachage.
using System; using System.Collections; class MyHashTable { public static void Main() { // Create a Hashtable Hashtable prog_lang = new Hashtable(); prog_lang.Add("001", "C#"); prog_lang.Add("002", "C++"); prog_lang.Add("003", "Java"); prog_lang.Add("004", "Python"); prog_lang.Add("005", "Perl"); //print original hashtable Console.WriteLine("Hashtable items:"); foreach(DictionaryEntry entry in prog_lang){ Console.WriteLine("{0} => {1} ", entry.Key, entry.Value); } } }
Ce programme est similaire au précédent, sauf qu'ici nous utilisons la méthode Add pour ajouter des éléments à la table de hachage. Nous ajoutons donc ici les cinq mêmes éléments constitués de nombres (clés) et de noms de langage de programmation (valeurs) à une table de hachage, puis affichons le contenu de la table de hachage.
La sortie du programme est présentée ci-dessous.
Hashtable items: 005 => Perl 004 => Python 002 => C++ 003 => Java 001 => C#
Comme le montre la figure, le contenu de la table de hachage est affiché dans la sortie.
Les éléments d'une table de hachage peuvent être mis à jour en passant la clé dans l'indexeur. De cette façon, nous pouvons récupérer la valeur et mettre à jour la valeur.
Par exemple, étant donné les villes de la table de hachage. Si une des clés est IN et que l'on souhaite mettre à jour la valeur de cette clé, on peut écrire :
Villes["IN"] = "Bombay";
Cela mettra à jour la valeur existante de la clé.
Mais veuillez noter que puisque Hashtable est une collection non générique, nous devons saisir la casse de la valeur si nous voulons la récupérer.
Considérons l'exemple suivant où nous mettons à jour un élément d'une table de hachage.
using System; using System.Collections; class MyHashTable { public static void Main() { // Create a Hashtable Hashtable cities = new Hashtable(); // Add elements to the Hashtable cities.Add("UK", "London, Liverpool, Bristol"); cities.Add("USA", "Los Angeles, Boston, Washington"); cities.Add("India", "New Delhi, Mumbai, Kolkata"); //print original hashtabel Console.WriteLine("Hashtable items:"); foreach(DictionaryEntry entry in cities){ Console.WriteLine("{0} => {1} ", entry.Key, entry.Value); } //update hashtable with new values for US and UK cities["UK"] = "Manchester, Birmingham, Leeds"; cities["USA"] = "Chicago, New York, Texas"; //print updated hashtable Console.WriteLine("Hashtable items after Updation:"); foreach(DictionaryEntry entry in cities){ Console.WriteLine("{0} ==> {1} ", entry.Key, entry.Value); } } }
Dans ce programme, nous avons une table de hachage "ville". Chaque clé (code de ville) est mappée à plusieurs valeurs. Tout d’abord, nous affichons le contenu original de la table de hachage. Ensuite, nous mettons à jour les valeurs de deux clés (USA et UK). encore Nous affichons la table de hachage mise à jour.
Ce programme affiche la sortie suivante.
Hashtable items: USA => Los Angeles, Boston, Washington India => New Delhi, Mumbai, Kolkata UK => London, Liverpool, Bristol Hashtable items after Updation: USA ==> Chicago, New York, Texas India ==> New Delhi, Mumbai, Kolkata UK ==> Manchester, Birmingham, Leeds
Veuillez noter que nous n'avons pas mis à jour la valeur de Key = India. Les valeurs clés restantes sont mises à jour et apparaissent dans le deuxième groupe de sortie.
Prenons un autre exemple. Ici, nous utilisons un initialiseur pour initialiser l'objet de table de hachage au lieu d'ajouter des valeurs à l'aide de la méthode Add.
using System; using System.Collections; class MyHashTable { public static void Main() { // Create a Hashtable Hashtable phonetics = new Hashtable() { {"A", "Apple"}, {"B", "Bat"}, {"C", "Cat"} }; //print original hashtabel Console.WriteLine("Hashtable items:"); foreach(DictionaryEntry entry in phonetics) { Console.WriteLine("{0} => {1} ", entry.Key, entry.Value); } //update hashtable with new values for all keys phonetics["A"] = "Ant, Anchor, Arm"; phonetics["B"] = "Ball, Baby, Beam"; phonetics["C"] = "Car, Cake, Camel"; //print updated hashtable Console.WriteLine("Hashtable items after Updation:"); foreach(DictionaryEntry entry in phonetics) { Console.WriteLine("{0} ==> {1} ", entry.Key, entry.Value); } } }
Ici, nous utilisons une table de hachage de symboles phonétiques. Tout d’abord, nous initialisons l’objet table de hachage et définissons une valeur pour chaque clé. Ensuite, nous avons mis à jour plusieurs valeurs pour chaque clé.
Le programme génère le résultat suivant.
Hashtable items: A => Apple B => Bat C => Cat Hashtable items after Updation: A ==> Ant, Anchor, Arm B ==> Ball, Baby, Beam C ==> Car, Cake, Camel
Nous pouvons voir les différentes sorties avant et après la mise à jour.
Dans cet article, nous avons discuté des méthodes de stockage et de mise à jour des valeurs dans les tables de hachage. Nous pouvons stocker des valeurs en initialisant un objet de table de hachage à l'aide de l'opérateur new lors de la déclaration. Nous pouvons également stocker des objets dans une table de hachage en utilisant la méthode Add. Pour mettre à jour une valeur dans une table de hachage, nous pouvons accéder à la clé d'un élément puis utiliser l'opérateur d'affectation pour mettre à jour sa valeur.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!