C#中HashTable简介和使用用法
一 简介
名词介绍 散列表(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);
下面控制台程序将包含以上所有操作
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]); // 排序后输出
lishixinzhi/Article/program/net/201311/12422