一哈希表(Hashtable)简述
在NET Framework中Hashtable是SystemCollections命名空间提供的一个容器用于处理和表现类似key/value的键值对其中key通常可用来快速查找同时key是区分大小写value用于存储对应于key的值Hashtable中key/value键值对均为object类型所以Hashtable可以支持任何类型的key/value键值对
二哈希表的简单操作
在哈希表中添加一个key/value键值对HashtableObjectAdd(keyvalue);
在哈希表中去除某个key/value键值对HashtableObjectRemove(key);
从哈希表中移除所有元素 HashtableObjectClear();
判断哈希表是否包含特定键key HashtableObjectContains(key);
下面控制台程序将包含以上所有操作
using System;
using SystemCollections; //使用Hashtable时必须引入这个命名空间
class hashtable
{
public static void Main()
{
Hashtable ht=new Hashtable(); //创建一个Hashtable实例
htAdd(Ee);//添加key/value键值对
htAdd(Aa);
htAdd(Cc);
htAdd(Bb);
string s=(string)ht[A];
if(htContains(E)) //判断哈希表是否包含特定键其返回值为true或false
ConsoleWriteLine(the E key:exist);
htRemove(C);//移除一个key/value键值对
ConsoleWriteLine(ht[A]);//此处输出a
htClear();//移除所有元素
ConsoleWriteLine(ht[A]); //此处将不会有任何输出
}
}
三遍历哈希表
遍历哈希表需要用到DictionaryEntry Object代码如下
for(DictionaryEntry de in ht) //ht为一个Hashtable实例
{
ConsoleWriteLine(deKey);//deKey对应于key/value键值对key
ConsoleWriteLine(deValue);//deKey对应于key/value键值对value
}
四对哈希表进行排序
对哈希表进行排序在这里的定义是对key/value键值对中的key按一定规则重新排列但是实际上这个定义是不能实现的因为我们无法直接在Hashtable进行对key进行重新排列如果需要Hashtable提供某种规则的输出可以采用一种变通的做法
ArrayList akeys=new ArrayList(htKeys); //别忘了导入SystemCollections
akeysSort(); //按字母顺序进行排序
for(string skey in akeys)
{
ConsoleWrite(skey + :);
ConsoleWriteLine(ht[skey]);//排序后输出
}