C# 哈希表(Hashtable)用法筆記
一、什麽是Hashtable?
Hashtable 類代表了一系列基於鍵的哈希代碼組織起來的鍵/值對。它使用鍵來訪問集合中的元素。
當您使用鍵訪問元素時,則使用哈希表,而且您可以識別一個有用的鍵值。哈希表中的每一項都有一個鍵/值對。鍵用於訪問集合中的項目
二、Hashtable 的屬性
1、Count 獲取 Hashtable 中包含的鍵值對個數。
2、IsFixedSize 獲取一個值,表示 Hashtable 是否具有固定大小。
3、IsReadOnly 獲取一個值,表示 Hashtable 是否只讀。
4、Item 獲取或設置與指定的鍵相關的值。
5、Keys 獲取一個 ICollection,包含 Hashtable 中的鍵。
6、Values 獲取一個 ICollection,包含 Hashtable 中的值。
三、Hashtable 的方法
在C#中使用需要引用
using System.Collections;
using System.Collections.Generic;
這兩個命名空間
1、 public virtual void Add( object key, object value );
用途: 向 Hashtable 添加一個帶有指定的鍵和值的元素。
2、public virtual void Clear();
用途:從 Hashtable 中移除所有的元素。
3、public virtual bool ContainsKey( object key );
用途:判斷 Hashtable 是否包含指定的鍵。
4、public virtual bool ContainsValue( object value );
用途:判斷 Hashtable 是否包含指定的值。
5、public virtual void Remove( object key );
用途:從 Hashtable 中移除帶有指定的鍵的元素。
四、HashTable的應用場景
1、某些數據會被高頻率查詢
2、數據量很大
3、查詢字段包含字符串類型
4、數據類型不唯一
五、HashTable簡單用法實例
class Program
{
static void Main(string[] args)
{
// 創建一個Hashtable實例
Hashtable ht=new Hashtable();
// 添加keyvalue鍵值對
ht.Add("A","1");
ht.Add("B","2");
ht.Add("C","3");
ht.Add("D","4");
// 遍歷哈希表只能用foreach來遍歷,因為Hashtable不能用索引訪問
//遍歷key
foreach(Object item in ht.Keys)
{
Console.WriteLine((string)item);
}
//遍歷value
foreach(Object item in ht.Value)
{
Console.WriteLine((string)item);
}
foreach (DictionaryEntry de in ht)
{
Console.WriteLine("Key -- {0}; Value --{1}.", de.Key, de.Value);
}
// 哈希表排序
ArrayList akeys=new ArrayList(ht.Keys);
akeys.Sort();
foreach (string skey in akeys)
{
Console.WriteLine("{0, -15} {1, -15}", skey, ht[skey]);
}
// 判斷哈希表是否包含特定鍵,其返回值為true或false
if (ht.Contains("A"))
Console.WriteLine(ht["A"]);
// 給對應的鍵賦值
ht["A"] ="你好";
// 移除一個keyvalue鍵值對
ht.Remove("C");
// 遍歷哈希表
foreach (DictionaryEntry de in ht)
{
Console.WriteLine("Key -- {0}; Value --{1}.", de.Key, de.Value);
}
// 移除所有元素
ht.Clear();
// 此處將不會有任何輸出
Console.WriteLine(ht["A"]);
Console.ReadKey();
}
}
公眾號:原文
C# 哈希表(Hashtable)用法筆記