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.
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.
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.
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); } } }
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".
Program ini menjana perkara berikut.
Hashtable items: 005 => Perl 004 => Python 002 => C++ 003 => Java 001 => C#
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")
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); } } }
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 program ditunjukkan di bawah.
Hashtable items: 005 => Perl 004 => Python 002 => C++ 003 => Java 001 => C#
Seperti yang ditunjukkan dalam rajah, kandungan jadual cincang dipaparkan dalam output.
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.
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); } } }
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.
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
Sila ambil perhatian bahawa kami tidak mengemas kini nilai Key = India. Baki nilai utama dikemas kini dan ia muncul dalam kumpulan kedua output.
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); } } }
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.
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
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!