首頁 >後端開發 >C++ >如何儲存/更新哈希表元素?

如何儲存/更新哈希表元素?

PHPz
PHPz轉載
2023-08-29 17:21:081429瀏覽

如何儲存/更新哈希表元素?

哈希表是一種由鍵值對集合組成的資料結構。哈希表集合使用雜湊函數來計算鍵的雜湊碼。哈希表也可以定義為鍵值對的非通用集合。

每個鍵的雜湊碼是使用雜湊函數計算出來的,並儲存在內部不同的桶中。存取值時,將此雜湊碼與指定鍵的雜湊碼進行匹配,並傳回結果。

與堆疊、佇列、ArrayList 等儲存單一值的其他資料結構不同,雜湊表集合以鍵值對的形式儲存雙值。每對鍵值對構成哈希表的一個元素。

讓我們在本文中討論如何在雜湊表集合中儲存和更新元素。

如何在Hashtable中儲存/更新項目?

我們可以在雜湊表中儲存或新增元素,也可以更新雜湊表中的現有元素。這是我們可以在哈希表集合上執行的兩個不同操作。

對於在雜湊表集合中新增元素,我們使用了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中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除