C#中HashTable簡介和使用用法

iDotNetSpace發表於2010-08-31

一、簡介

名詞介紹:雜湊表(Hash table,也叫雜湊表),是根據關鍵碼值(Key value)而直接進行訪問的資料結構。也就是說,它通過把關鍵碼值對映到表中一個位置來訪問記錄,以加快查詢的速度。這個對映函式叫做雜湊函式,存放記錄的陣列叫做雜湊表。

HashTable 表的優點:HashTable是System.Collections名稱空間提供的一個容器,HashTable中的key/value均為object型別,所以HashTable可以支援任何型別的key/value鍵/值對。

HashTable的優點就在於其索引的方式,速度非常快

二、雜湊表的簡單操作

在雜湊表中新增一個keyvalue鍵值對:HashtableObject.Add(key,value);

在雜湊表中去除某個keyvalue鍵值對:HashtableObject.Remove(key);

從雜湊表中移除所有元素: HashtableObject.Clear();

判斷雜湊表是否包含特定鍵key: HashtableObject.Contains(key);

下面控制檯程式將包含以上所有操作:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
using System;
 
using System.Collections;       //file使用Hashtable時,必須引入這個名稱空間
 
class hashtable
 
{
 
public static void Main()
 
{
 
Hashtable ht=new Hashtable();  //file建立一個Hashtable例項
 
ht.Add(E,e);                   //新增keyvalue鍵值對
 
ht.Add(A,a);
 
ht.Add(C,c);
 
ht.Add(B,b);
 
string s=(string)ht[A];
 
if(ht.Contains(E))             //file判斷雜湊表是否包含特定鍵,其返回值為true或false
 
Console.WriteLine(the E keyexist);
 
ht.Remove(C);                 //移除一個keyvalue鍵值對
 
Console.WriteLine(ht[A]);     //此處輸出a
 
ht.Clear();                   //移除所有元素
 
Console.WriteLine(ht[A]);     //file此處將不會有任何輸出
 
}
 
}

三、遍歷雜湊表

遍歷雜湊表需要用到DictionaryEntry Object,程式碼如下:

for(DictionaryEntry de in ht) // fileht為一個Hashtable例項
 
{
 
Console.WriteLine(de.Key);   //de.Key對應於keyvalue鍵值對key
 
Console.WriteLine(de.Value); //de.Key對應於keyvalue鍵值對value
 
}

四、對雜湊表進行排序

對雜湊表進行排序在這裡的定義是對keyvalue鍵值對中的key按一定規則重新排列,但是實際上這個定義是不能實現的,因為我們無法直接在Hashtable進行對key進行重新排列,如果需要Hashtable提供某種規則的輸出,可以採用一種變通的做法:

ArrayList akeys=new ArrayList(ht.Keys);  // file別忘了匯入System.Collections
 
akeys.Sort();                           // file按字母順序進行排序
 
for(string skey in akeys)
 
{
 
Console.Write(skey + );
 
Console.WriteLine(ht[skey]);            // 排序後輸出
 
}

文章出自:小風草堂 http://www.cnitman.com/csharp-hashtable-usage-introduce/

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-672240/,如需轉載,請註明出處,否則將追究法律責任。

相關文章