Heim >Backend-Entwicklung >C++ >Wie speichere/aktualisiere ich Hash-Tabellenelemente?

Wie speichere/aktualisiere ich Hash-Tabellenelemente?

PHPz
PHPznach vorne
2023-08-29 17:21:081443Durchsuche

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);
      }
   }
}

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

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# 

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);
      }
   }
}

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# 

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);
      }
   }
}

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 

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);
      }
   }
}

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 

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen