.NET C# Web開發學習之路(十)—— Hashtable(哈希表)
Hashtable概述
Hashtable通常稱爲哈希表,用於表示鍵/值對的集合,這些鍵/值對根據鍵的哈希代碼進行組織,其沒個元素都是一個存儲於DictionaryEntry對象中的鍵/值對。鍵不能爲空引用,但值可以。
Hashtable的構造函數有多種,這裏介紹兩種最常用的。
1、使用默認的初始容量、默認加載因子、默認哈希代碼提供程序和默認比較器來初始化Hashtable類的新的空實例。
public Hashtable()
2、使用指定的初始容量、默認加載因子、默認哈希代碼提供程序和默認比較器來初始化Hashtable類的新的空實例。
public Hashtable(int capacity)//capacity指Hashtable對象最初可包含的元素的近似數目。
Hashtable常用屬性及說明
屬性 | 說明 |
---|---|
Count | 獲取包含在Hashtable中的鍵/值對的數目 |
IsFixedSize | 獲取一個值,該值指示Hashtable是否具有固定大小 |
IsReadOnly | 獲取一個值,該值指示Hashtable知否爲只讀 |
IsSynchronized | 獲取一個值,該值指示是否同步對Hashtable的訪問 |
Item | 設置或獲取與指定的鍵相關聯的值 |
Keys | 獲取包含Hashtable中的鍵的ICollection |
SyncRoot | 獲取可用於同步Hashtable訪問的對象 |
Values | 獲取包含Hashtable中的值的ICollection |
添加Hashtable元素
Add方法:向Hashtable中添加元素
public virtual void Add(Object key,Object value)
說明:
- key:要添加的元素的鍵
- value:要添加的元素的值,可以爲空引用
刪除Hashtable元素
1、Clear方法:從Hashtable中移除所有元素
public virtual void Clear()
例:
static void Main(string[] args)
{
Hashtable hashtable = new Hashtable();
hashtable.Add("id","BH0001");
hashtable.Add("name","TM");
hashtable.Add("sex","Man");
hashtable.Clear();
Consol.WriteLine(hashtable.Count);
}
程序運行結果爲
0
2、Remove方法:從Hashtable中移除帶有指定鍵的元素
public virtual void Remove(Object key)
//其中key是要移除的元素的鍵
例:
static void Main(string[] args)
{
Hashtable hashtable = new Hashtable();
hashtable.Add("id","BH0001");
hashtable.Add("name","TM");
hashtable.Add("sex","Man");
hashtable.Remove("sex");
Consol.WriteLine(hashtable.Count);
}
程序運行結果爲:
2
遍歷Hashtable元素
Hashtable的遍歷與數組的遍歷類似,都可以使用foreach語句。但是,Hashtable中的元素是一個鍵/值對,因此需要使用DictionaryEntry類型來進行遍歷。DictionaryEntry表示一個鍵/值對的集合。
例:
static void Main(string[] args)
{
Hashtable hashtable = new Hashtable();
hashtable.Add("id","BH0001");
hashtable.Add("name","TM");
hashtable.Add("sex","Man");
Console.WriteLine("\t 鍵 \t 值");
foreach(DictionaryEntry dicEntry in hashtable)
{
Console.WriteLine("\t"+dicEntry.Key+"\t"+dicEntry.Value);
}
}
程序運行結果爲:
鍵 值
name TM
sex Man
id BH0001
查找Hashtable元素
1、Contains方法:用來確定Hashtable中是否包含特定鍵
public virtual bool Contains(Object key)
說明:
- key:要在Hashtable中定位的鍵
- 返回值:如果Hashtable中含有指定鍵的元素,返回True,否則返回False
2、ContainsValue方法:確定Hashtable中是否包含特定值
public virtual bool ContainsValue(Object value)
說明:
- value:要在Hashtable中定位的值,可以爲空引用
- 返回值:如果Hashtable中含有指定值的元素,返回True,否則返回False