哈希表(Hashtable)简述
我想大家对Hashtable很熟悉,平时在工作中使用的也是比较多的,现在都是3.5了,Dictionary 的出现已经可以替代Hashtable,但是我还是想对这个Net框架使用较多的对象(举个例子:Net的CLR处理一个程序集的字符串就是采用HashTable存储在System Domain)讲解一下,因为很多新的技术都是建立在老的技术和思想上的。
在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似key/value的键值对,其中key通常可用来快速查找,同时key是区分大小写;value用于存储对应于key的值。Hashtable中key/value键值对均为 object类型,所以Hashtable可以支持任何类型的key/value键值对.
例子
Hashtable ht = new Hashtable();
for (int m = 0; m < 5; m++)
ht.Add(new cuskey(m), m);
if (ht.ContainsKey(new cuskey(3)))
{
Console.WriteLine("find!");
}
else
{
Console.WriteLine("can't find!");
}
ht.Clear();
MyTest key1 = new MyTest(10);
ht.Add(key1, "Key1");
if (ht.ContainsKey(key1))
{
Console.WriteLine("Is key1 contained in hashtable? {0}", true);
}
else
{
Console.WriteLine("Is key1 contained in hashtable? {0}", false);
}
key1.KeyNumber = 11;
bool isContained = ht.ContainsKey(key1);
Console.WriteLine("Is key1 contained in hashtable? {0}", isContained);
MyTest key2 = new MyTest(10);
ht.Add(key2, "key2");
Console.WriteLine("Hashtable counts:" + ht.Count);
MyTest key3 = new MyTest(15);
ht.Add(key3, "key3");
Console.WriteLine("Hashtable counts:" + ht.Count);
//MyTest key4 = new MyTest(10);
//ht.Add(key4, "key4");
先不做解释,看看结果。