Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk menyimpan/mengemas kini elemen jadual hash?

Bagaimana untuk menyimpan/mengemas kini elemen jadual hash?

PHPz
Lepaskan: 2023-08-29 17:21:08
ke hadapan
1442 orang telah melayarinya

Bagaimana untuk menyimpan/mengemas kini elemen jadual hash?

Jadual cincang ialah struktur data yang terdiri daripada koleksi pasangan nilai kunci. Koleksi jadual cincang menggunakan fungsi cincang untuk mengira kod cincang kunci. Jadual cincang juga boleh ditakrifkan sebagai koleksi bukan universal pasangan nilai kunci.

Kod cincang setiap kunci dikira menggunakan fungsi cincang dan disimpan dalam baldi berbeza secara dalaman. Apabila mengakses nilai, padankan kod cincang ini dengan kod cincang kunci yang ditentukan dan mengembalikan hasilnya.

Tidak seperti struktur data lain seperti tindanan, baris gilir, ArrayList, dll. yang menyimpan nilai tunggal, koleksi jadual cincang menyimpan nilai berganda dalam bentuk pasangan nilai kunci. Setiap pasangan nilai kunci membentuk elemen jadual cincang.

Mari kita bincangkan dalam artikel ini cara menyimpan dan mengemas kini elemen dalam koleksi jadual cincang.

Bagaimana untuk menyimpan/mengemas kini item dalam Hashtable?

Kami boleh menyimpan atau menambah elemen dalam jadual cincang dan juga mengemas kini elemen sedia ada dalam jadual cincang. Ini ialah dua operasi berbeza yang boleh kami lakukan pada koleksi jadual cincang.

Untuk menambah elemen pada koleksi jadual cincang, kami menggunakan kaedah "Tambah" kelas Hashtable yang disediakan dalam C#.

Untuk mengemas kini elemen jadual cincang, kami menggunakan pengendali tugasan untuk menggantikan nilai.

Tambah elemen pada jadual cincang

Kita boleh menambah elemen pada jadual cincang dalam dua cara.

  • Gunakan pemula untuk jadual cincang

  • Gunakan kaedah Tambah

Dalam kaedah pertama menggunakan pemula, kami memulakan objek jadual cincang menggunakan pasangan nilai kunci sambil mengisytiharkan objek jadual cincang.

Ini akan mencipta objek hashtable dengan pasangan nilai kunci awal. Mari kita lihat contoh pengaturcaraan untuk menunjukkan cara menambah elemen pada jadual cincang menggunakan pemula.

Contoh

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);
      }
   }
}
Salin selepas log masuk

Dalam contoh ini, mula-mula, kami mencipta objek jenis Hashtable bernama "prog_lang" menggunakan kata kunci "baharu" dan memulakannya kepada lima pasangan nilai kunci nombor (kunci) dan nama bahasa pengaturcaraan (nilai) . < /p>

Kami kemudian mencetak kandungan jadual cincang itu dengan menggelung di atas jadual cincang menggunakan "foreach".

Output

Program ini menjana perkara berikut.

Hashtable items:
005 => Perl 
004 => Python 
002 => C++ 
003 => Java 
001 => C# 
Salin selepas log masuk
Salin selepas log masuk

Program ini hanya memaparkan kandungan jadual cincang.

Kaedah tambah disediakan oleh kelas Hashtable dan boleh digunakan untuk menambah elemen pada objek Hashtable. Kaedah tambah mempunyai sintaks umum berikut.

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

Contoh

Atur cara berikut menunjukkan kaedah Tambah untuk menyimpan elemen dalam koleksi jadual cincang.

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);
      }
   }
}
Salin selepas log masuk

Program ini serupa dengan yang sebelumnya, kecuali di sini kami menggunakan kaedah Tambah untuk menambah elemen pada jadual cincang. Jadi di sini kita menambah lima elemen yang sama yang terdiri daripada nombor (kunci) dan nama bahasa pengaturcaraan (nilai) pada jadual cincang dan kemudian memaparkan kandungan jadual cincang.

Output

Output program ditunjukkan di bawah.

Hashtable items:
005 => Perl 
004 => Python 
002 => C++ 
003 => Java 
001 => C# 
Salin selepas log masuk
Salin selepas log masuk

Seperti yang ditunjukkan dalam rajah, kandungan jadual cincang dipaparkan dalam output.

Kemas kini elemen dalam jadual cincang

Elemen dalam jadual cincang boleh dikemas kini dengan menghantar kekunci dalam pengindeks. Dengan cara ini kita boleh mendapatkan semula nilai dan mengemas kini nilai.

Sebagai contoh, memandangkan bandar jadual cincang. Jika salah satu kunci adalah IN dan kami ingin mengemas kini nilai kunci ini, kami boleh menulis:

Bandar["IN"] = "Mumbai";

Ini akan mengemas kini nilai kunci yang sedia ada.

Tetapi sila ambil perhatian bahawa memandangkan Hashtable ialah koleksi bukan generik, kita perlu menaip kes nilai jika kita ingin mendapatkannya semula.

Contoh

Mari kita pertimbangkan contoh berikut di mana kita mengemas kini elemen jadual cincang.

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);
      }
   }
}
Salin selepas log masuk

Dalam program ini kami mempunyai jadual hash "bandar". Setiap kunci (kod bandar) dipetakan kepada berbilang nilai. Mula-mula, kami memaparkan kandungan asal jadual cincang. Kemudian kami mengemas kini nilai dua kunci (AS dan UK). sekali lagi Kami memaparkan jadual cincang yang dikemas kini.

Output

Program ini memaparkan output berikut.

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 
Salin selepas log masuk

Sila ambil perhatian bahawa kami tidak mengemas kini nilai Key = India. Baki nilai utama dikemas kini dan ia muncul dalam kumpulan kedua output.

Contoh

Mari kita pertimbangkan contoh lain. Di sini kami menggunakan pemula untuk memulakan objek jadual hash dan bukannya menambah nilai menggunakan kaedah Tambah.

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);
      }
   }
}
Salin selepas log masuk

Di sini, kami menggunakan jadual cincang simbol fonetik. Mula-mula, kita mulakan objek jadual hash dan tetapkan nilai untuk setiap kunci. Kemudian kami mengemas kini berbilang nilai untuk setiap kunci.

Output

Atur cara menjana output berikut.

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

Hashtable items after Updation:
A ==> Ant, Anchor, Arm 
B ==> Ball, Baby, Beam 
C ==> Car, Cake, Camel 
Salin selepas log masuk

Kita dapat melihat output yang berbeza sebelum dan selepas kemas kini.

Dalam artikel ini, kami membincangkan kaedah menyimpan dan mengemas kini nilai dalam jadual cincang. Kita boleh menyimpan nilai dengan memulakan objek jadual hash menggunakan operator baharu semasa pengisytiharan. Kami juga boleh menyimpan objek dalam jadual cincang menggunakan kaedah Tambah. Untuk mengemas kini nilai dalam jadual cincang, kita boleh mengakses kunci elemen dan kemudian menggunakan pengendali tugasan untuk mengemas kini nilainya.

Atas ialah kandungan terperinci Bagaimana untuk menyimpan/mengemas kini elemen jadual hash?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan