Heim >Backend-Entwicklung >C++ >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.
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.
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.
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.
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")
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.
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 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.
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.
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.
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.
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!