Hashtable trong C # là gì?
Bảng băm là một tập hợp đặc biệt được sử dụng để lưu trữ các mục giá trị-khóa. Vì vậy, thay vì chỉ lưu trữ một giá trị như ngăn xếp, danh sách mảng và hàng đợi, bảng băm lưu trữ 2 giá trị. 2 giá trị này tạo thành một phần tử của bảng băm.
Dưới đây là một số ví dụ về cách các giá trị của bảng băm có thể trông như thế nào.
{ "001" , ".Net" }{ "002" , ".C#" }{ "003" , "ASP.Net" }
Ở trên chúng ta có 3 cặp giá trị chính. Khóa của mỗi phần tử lần lượt là 001, 002 và 003. Giá trị của mỗi cặp giá trị khóa tương ứng là ".Net", "C #" và "ASP.Net".
Hãy xem xét các hoạt động có sẵn cho bộ sưu tập Hashtable chi tiết hơn.
Tuyên bố của Hashtable
Khai báo Hashtable được hiển thị bên dưới. Hashtable được tạo với sự trợ giúp của Hashtable Datatype. Từ khóa "mới" được sử dụng để tạo một đối tượng của Hashtable. Đối tượng sau đó được gán cho biến ht.
Hashtable ht = new Hashtable()
Thêm các phần tử vào Hashtable
Phương thức Add được sử dụng để thêm một phần tử vào hàng đợi. Cú pháp chung của câu lệnh được đưa ra dưới đây
HashTable.add("key","value")
Ví dụ 1:
Hãy nhớ rằng mỗi phần tử của bảng băm bao gồm 2 giá trị, một là khóa và một là giá trị.
Bây giờ, hãy xem điều này hoạt động ở cấp độ mã. Tất cả mã được đề cập bên dưới sẽ được ghi vào ứng dụng Console của chúng tôi.
Mã sẽ được ghi vào tệp Program.cs của chúng tôi. Trong chương trình dưới đây, chúng tôi sẽ viết mã để xem chúng tôi có thể sử dụng các phương pháp nêu trên như thế nào.
Bây giờ trong ví dụ của chúng ta, chúng ta sẽ chỉ xem xét cách chúng ta có thể tạo bảng băm, thêm các phần tử vào bảng băm và hiển thị chúng cho phù hợp.
using System;using System.Collections;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace DemoApplication{class Program{static void Main(string[] args){Hashtable ht = new Hashtable();ht.Add("001",".Net");ht.Add("002","C#");ht.Add("003","ASP.Net");ICollection keys = ht.Keys;foreach (String k in keys){Console.WriteLine(ht[k]);}Console.ReadKey();}}}
Giải thích mã: -
- Đầu tiên, chúng ta khai báo biến hashtable sử dụng kiểu dữ liệu Hashtable bằng cách sử dụng từ khóa "New". Tên của biến được định nghĩa là 'ht'.
- Sau đó, chúng tôi thêm các phần tử vào bảng băm bằng phương pháp Thêm. Hãy nhớ rằng chúng ta cần thêm cả phần tử khóa và giá trị khi thêm thứ gì đó vào bảng băm.
- Không có cách nào trực tiếp để hiển thị các phần tử của bảng băm.
- Để hiển thị bảng băm, trước tiên chúng ta cần lấy danh sách các khóa (001, 002 và 003) từ bảng băm.
- Điều này được thực hiện thông qua giao diện ICollection. Đây là một kiểu dữ liệu đặc biệt có thể được sử dụng để lưu trữ các khóa của một bộ sưu tập bảng băm. Sau đó, chúng tôi gán các khóa của bộ sưu tập bảng băm cho các 'khóa' biến.
- Tiếp theo đối với mỗi giá trị khóa, chúng ta nhận được giá trị được liên kết trong bảng băm bằng cách sử dụng câu lệnh ht [k].
Nếu mã trên được nhập đúng cách và chương trình được chạy, kết quả sau sẽ được hiển thị.
Đầu ra:
Hãy xem xét thêm một số phương pháp có sẵn cho bảng băm.
ContainsKey
Phương pháp này được sử dụng để xem liệu một khóa có trong Hashtable hay không. Dưới đây là cú pháp chung của câu lệnh này. Câu lệnh sẽ trả về true nếu khóa tồn tại, nếu không, nó sẽ trả về giá trị false.
Hashtable.Containskey(key)
ContainsValue
Phương pháp này được sử dụng để xem liệu một Giá trị có trong Hashtable hay không. Dưới đây là cú pháp chung của câu lệnh này. Câu lệnh sẽ trả về true nếu Giá trị tồn tại, nếu không, nó sẽ trả về giá trị false.
Hashtable.ContainsValue(value)
Ví dụ 2:
Hãy thay đổi mã trong ứng dụng Console của chúng tôi để giới thiệu cách chúng tôi có thể sử dụng phương thức "Containskey" và "ContainsValue".
using System;using System.Collections;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace DemoApplication{class Program{static void Main(string[] args){Hashtable ht = new Hashtable();ht.Add("001",".Net");ht.Add("002","C#");ht.Add("003","ASP.Net");Console.WriteLine(ht.ContainsKey("001"));Console.WriteLine(ht.ContainsValue("C#"));Console.ReadKey();}}}
Giải thích mã: -
- Đầu tiên, chúng tôi sử dụng phương thức ContainsKey để xem liệu khóa có trong bảng băm hay không. Phương thức này sẽ trả về true nếu khóa có trong bảng băm. Phương thức này sẽ trả về true vì khóa tồn tại trong bảng băm.
- Sau đó, chúng tôi sử dụng phương thức ContainsValue để xem liệu giá trị có trong bảng băm hay không. Phương thức này sẽ trả về 'true' vì Giá trị tồn tại trong bảng băm.
Nếu mã trên được nhập đúng cách và chương trình được chạy, kết quả sau sẽ được hiển thị.
Đầu ra:
Từ kết quả đầu ra, bạn có thể thấy rõ ràng rằng cả khóa và giá trị đang được tìm kiếm đều có mặt trong bảng băm.
Tóm lược
- Hashtable được sử dụng để lưu trữ các phần tử bao gồm các cặp giá trị khóa. Để truy cập giá trị của một phần tử, bạn cần biết khóa của phần tử đó.