哈希表是一種由鍵值對集合組成的資料結構。哈希表集合使用雜湊函數來計算鍵的雜湊碼。哈希表也可以定義為鍵值對的非通用集合。
每個鍵的雜湊碼是使用雜湊函數計算出來的,並儲存在內部不同的桶中。存取值時,將此雜湊碼與指定鍵的雜湊碼進行匹配,並傳回結果。
與堆疊、佇列、ArrayList 等儲存單一值的其他資料結構不同,雜湊表集合以鍵值對的形式儲存雙值。每對鍵值對構成哈希表的一個元素。
讓我們在本文中討論如何在雜湊表集合中儲存和更新元素。
我們可以在雜湊表中儲存或新增元素,也可以更新雜湊表中的現有元素。這是我們可以在哈希表集合上執行的兩個不同操作。
對於在雜湊表集合中新增元素,我們使用了C#中提供的Hashtable類別的「Add」方法。
為了更新雜湊表的元素,我們使用賦值運算子來取代值。
我們可以透過兩種方式向哈希表添加元素。
使用初始化器為哈希表
使用 Add 方法
在使用初始化器的第一種方法中,我們在宣告哈希表物件時使用鍵值對初始化哈希表物件。
這將建立一個具有初始鍵值對的雜湊表物件。讓我們透過一個程式範例來示範如何使用初始化向哈希表添加元素。
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); } } }
在這個範例中,首先,我們使用「new」關鍵字建立一個名為「prog_lang」的Hashtable 類型的對象,並將其初始化為五個鍵值對的數字(鍵)和程式語言名稱(值)。
然後我們透過使用「foreach」循環遍歷哈希表來列印該哈希表的內容。
該程式產生以下內容。
Hashtable items: 005 => Perl 004 => Python 002 => C++ 003 => Java 001 => C#
該程式僅顯示哈希表的內容。
新增方法由Hashtable類別提供,可用於為Hashtable物件新增元素。新增方法具有以下一般語法。
HashTable.add("key", "value")
下面的程式示範了將元素儲存在雜湊表集合中的Add方法。
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); } } }
該程式與前一個程式類似,只是這裡我們使用 Add 方法將元素新增到雜湊表中。因此,這裡我們將由數字(鍵)和程式語言名稱(值)組成的相同五個元素添加到哈希表中,然後顯示哈希表的內容。
程式的輸出如下所示。
#Hashtable items: 005 => Perl 004 => Python 002 => C++ 003 => Java 001 => C#
如圖所示,哈希表的內容顯示在輸出中。
可以透過在索引器中傳遞鍵來更新哈希表中的元素。我們可以透過這種方式檢索值並更新該值。
例如,給定哈希表cities。如果其中一個鍵是IN,我們想要更新這個鍵的值,我們可以寫成:
Cities[“IN”] = “孟買”;
這將更新金鑰的現有值。
但請注意,由於 Hashtable 是一個非泛型集合,因此如果要檢索值,我們必須鍵入值的大小寫。
讓我們考慮以下範例,其中我們更新哈希表的元素。
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); } } }
在這個程式中,我們有一個「城市」哈希表。每個鍵(城市代碼)都映射到多個值。首先,我們顯示哈希表的原始內容。然後我們更新兩個鍵(USA 和 UK)的值。再次 我們顯示更新後的雜湊表。
此程式顯示下列輸出。
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
請注意,我們沒有更新 Key = India 的值。其餘鍵值已更新,它們顯示在輸出的第二組中。
讓我們考慮另一個例子。這裡我們使用初始化器來初始化哈希表對象,而不是使用 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); } } }
在這裡,我們使用了一個音標哈希表。首先,我們初始化了哈希表對象,並為每個鍵設定了一個值。然後我們更新了每個鍵的多個值。
該程式產生以下輸出。
Hashtable items: A => Apple B => Bat C => Cat Hashtable items after Updation: A ==> Ant, Anchor, Arm B ==> Ball, Baby, Beam C ==> Car, Cake, Camel
我們可以看到更新前和更新後的不同輸出。
在本文中,我們討論了在雜湊表中儲存和更新值的方法。我們可以透過在宣告期間使用new運算子初始化雜湊表物件來儲存值。我們也可以使用Add方法將物件儲存在哈希表中。要更新雜湊表中的值,我們可以存取元素的鍵,然後使用賦值運算子來更新其值。
以上是如何儲存/更新哈希表元素?的詳細內容。更多資訊請關注PHP中文網其他相關文章!