Heim > Backend-Entwicklung > C++ > Hauptteil

Wie speichere/aktualisiere ich Hash-Tabellenelemente?

PHPz
Freigeben: 2023-08-29 17:21:08
nach vorne
1414 Leute haben es durchsucht

Wie speichere/aktualisiere ich Hash-Tabellenelemente?

Eine Hash-Tabelle ist eine Datenstruktur, die aus einer Sammlung von Schlüssel-Wert-Paaren besteht. Eine Hash-Tabellensammlung verwendet eine Hash-Funktion, um den Hash-Code eines Schlüssels zu berechnen. Eine Hash-Tabelle kann auch als eine nicht-universelle Sammlung von Schlüssel-Wert-Paaren definiert werden.

Der Hash-Code jedes Schlüssels wird mithilfe einer Hash-Funktion berechnet und intern in verschiedenen Buckets gespeichert. Gleicht beim Zugriff auf einen Wert diesen Hash-Code mit dem Hash-Code des angegebenen Schlüssels ab und gibt das Ergebnis zurück.

Im Gegensatz zu anderen Datenstrukturen wie Stacks, Queues, ArrayList usw., die Einzelwerte speichern, speichern Hash-Tabellensammlungen Doppelwerte in Form von Schlüssel-Wert-Paaren. Jedes Schlüssel-Wert-Paar bildet ein Element der Hash-Tabelle.

Lassen Sie uns in diesem Artikel diskutieren, wie Elemente in einer Hash-Tabellensammlung gespeichert und aktualisiert werden.

Wie speichere/aktualisiere ich Elemente in Hashtable?

Wir können Elemente in der Hash-Tabelle speichern oder hinzufügen und auch vorhandene Elemente in der Hash-Tabelle aktualisieren. Dies sind zwei verschiedene Operationen, die wir für eine Sammlung von Hash-Tabellen ausführen können.

Zum Hinzufügen von Elementen zur Hash-Tabellensammlung verwenden wir die „Add“-Methode der in C# bereitgestellten Hashtable-Klasse.

Um die Elemente der Hash-Tabelle zu aktualisieren, verwenden wir den Zuweisungsoperator, um den Wert zu ersetzen.

Elemente zur Hash-Tabelle hinzufügen

Wir können der Hash-Tabelle auf zwei Arten Elemente hinzufügen.

  • Verwenden Sie den Initialisierer für die Hash-Tabelle

  • Verwenden Sie die Add-Methode

Bei der ersten Methode mit dem Initialisierer initialisieren wir das Hash-Tabellenobjekt mithilfe von Schlüssel-Wert-Paaren, während wir das Hash-Tabellenobjekt deklarieren.

Dadurch wird ein Hashtabellenobjekt mit anfänglichen Schlüssel-Wert-Paaren erstellt. Lassen Sie uns ein Programmierbeispiel durchgehen, um zu demonstrieren, wie Sie mithilfe der Initialisierung Elemente zu einer Hash-Tabelle hinzufügen.

Beispiel

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);
      }
   }
}
Nach dem Login kopieren

In diesem Beispiel erstellen wir zunächst ein Objekt vom Typ Hashtable mit dem Namen „prog_lang“ mit dem Schlüsselwort „new“ und initialisieren es mit fünf Schlüssel-Wert-Paaren aus Zahlen (Schlüsseln) und Programmiersprachennamen (Werten). < /p>

Wir drucken dann den Inhalt dieser Hash-Tabelle aus, indem wir die Hash-Tabelle mit „foreach“ durchlaufen.

Ausgabe

Das Programm generiert Folgendes.

Hashtable items:
005 => Perl 
004 => Python 
002 => C++ 
003 => Java 
001 => C# 
Nach dem Login kopieren
Nach dem Login kopieren

Das Programm zeigt nur den Inhalt der Hash-Tabelle an.

Die Add-Methode wird von der Hashtable-Klasse bereitgestellt und kann zum Hinzufügen von Elementen zum Hashtable-Objekt verwendet werden. Add-Methoden haben die folgende allgemeine Syntax.

HashTable.add("key", "value")

Beispiel

Das folgende Programm demonstriert die Add-Methode zum Speichern von Elementen in einer Hash-Tabellensammlung.

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);
      }
   }
}
Nach dem Login kopieren

Dieses Programm ähnelt dem vorherigen, außer dass wir hier die Add-Methode verwenden, um Elemente zur Hash-Tabelle hinzuzufügen. Hier fügen wir also dieselben fünf Elemente, bestehend aus Zahlen (Schlüsseln) und Programmiersprachennamen (Werten), zu einer Hash-Tabelle hinzu und zeigen dann den Inhalt der Hash-Tabelle an.

Ausgabe

Die Ausgabe des Programms wird unten angezeigt.

Hashtable items:
005 => Perl 
004 => Python 
002 => C++ 
003 => Java 
001 => C# 
Nach dem Login kopieren
Nach dem Login kopieren

Wie in der Abbildung gezeigt, wird der Inhalt der Hash-Tabelle in der Ausgabe angezeigt.

Elemente in der Hash-Tabelle aktualisieren

Elemente in einer Hash-Tabelle können durch Übergabe des Schlüssels im Indexer aktualisiert werden. Auf diese Weise können wir den Wert abrufen und aktualisieren.

Zum Beispiel anhand der Städte der Hash-Tabelle. Wenn einer der Schlüssel IN ist und wir den Wert dieses Schlüssels aktualisieren möchten, können wir schreiben:

Cities["IN"] = "Mumbai";

Dadurch wird der vorhandene Wert des Schlüssels aktualisiert.

Aber bitte beachten Sie, dass wir, da es sich bei Hashtable um eine nicht generische Sammlung handelt, die Groß-/Kleinschreibung des Werts eingeben müssen, wenn wir ihn abrufen möchten.

Beispiel

Betrachten wir das folgende Beispiel, in dem wir ein Element einer Hash-Tabelle aktualisieren.

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);
      }
   }
}
Nach dem Login kopieren

In diesem Programm haben wir eine „Stadt“-Hash-Tabelle. Jeder Schlüssel (Stadtcode) wird mehreren Werten zugeordnet. Zuerst zeigen wir den ursprünglichen Inhalt der Hash-Tabelle an. Dann aktualisieren wir die Werte von zwei Schlüsseln (USA und UK). wieder Wir zeigen die aktualisierte Hash-Tabelle an.

Ausgabe

Dieses Programm zeigt die folgende Ausgabe an.

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 
Nach dem Login kopieren

Bitte beachten Sie, dass wir den Wert von Key = India nicht aktualisiert haben. Die verbleibenden Schlüsselwerte werden aktualisiert und erscheinen in der zweiten Ausgabegruppe.

Beispiel

Betrachten wir ein anderes Beispiel. Hier verwenden wir einen Initialisierer, um das Hash-Tabellenobjekt zu initialisieren, anstatt Werte mit der Add-Methode hinzuzufügen.

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);
      }
   }
}
Nach dem Login kopieren

Hier verwenden wir eine Hash-Tabelle für phonetische Symbole. Zuerst initialisieren wir das Hash-Tabellenobjekt und legen für jeden Schlüssel einen Wert fest. Dann haben wir mehrere Werte für jeden Schlüssel aktualisiert.

Ausgabe

Das Programm generiert die folgende Ausgabe.

Hashtable items:
A => Apple 
B => Bat 
C => Cat 

Hashtable items after Updation:
A ==> Ant, Anchor, Arm 
B ==> Ball, Baby, Beam 
C ==> Car, Cake, Camel 
Nach dem Login kopieren

Wir können die unterschiedliche Ausgabe vor und nach dem Update sehen.

In diesem Artikel haben wir Methoden zum Speichern und Aktualisieren von Werten in Hash-Tabellen besprochen. Wir können Werte speichern, indem wir während der Deklaration ein Hash-Tabellenobjekt mit dem Operator new initialisieren. Mit der Add-Methode können wir Objekte auch in einer Hash-Tabelle speichern. Um einen Wert in einer Hash-Tabelle zu aktualisieren, können wir auf den Schlüssel eines Elements zugreifen und dann den Zuweisungsoperator verwenden, um seinen Wert zu aktualisieren.

Das obige ist der detaillierte Inhalt vonWie speichere/aktualisiere ich Hash-Tabellenelemente?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage