Maison > développement back-end > C++ > Comment stocker/mettre à jour les éléments de la table de hachage ?

Comment stocker/mettre à jour les éléments de la table de hachage ?

PHPz
Libérer: 2023-08-29 17:21:08
avant
1442 Les gens l'ont consulté

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.

Comment stocker/mettre à jour des éléments dans Hashtable ?

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.

Ajouter des éléments à la table de hachage

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.

Exemple

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);
      }
   }
}
Copier après la connexion

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). < /p>

Nous imprimons ensuite le contenu de cette table de hachage en parcourant la table de hachage en utilisant "foreach".

Sortie

Le programme génère ce qui suit.

Hashtable items:
005 => Perl 
004 => Python 
002 => C++ 
003 => Java 
001 => C# 
Copier après la connexion
Copier après la connexion

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")

Exemple

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);
      }
   }
}
Copier après la connexion

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.

Sortie

La sortie du programme est présentée ci-dessous.

Hashtable items:
005 => Perl 
004 => Python 
002 => C++ 
003 => Java 
001 => C# 
Copier après la connexion
Copier après la connexion

Comme le montre la figure, le contenu de la table de hachage est affiché dans la sortie.

Mettre à jour les éléments dans la table de hachage

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.

Exemple

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);
      }
   }
}
Copier après la connexion

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.

Sortie

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 
Copier après la connexion

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.

Exemple

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);
      }
   }
}
Copier après la connexion

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é.

Sortie

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 
Copier après la connexion

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!

source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal