哈希表Hashtable是一个重要的集合类型,下面我来对他的基本用法做个小小的总结。
using System.Collections; //使用Hashtable时,必须引入这个命名空间
1、Hashtable的概述
Hashtable它表示键/值对的集合,这些键/值对根据键的哈希代码进行组织。它的每个元素都是一个存储在DictionaryEntry对象中的键/值对,键不能为空引用,但值可以。
Hashtable常用的两种构造函数:public Hashtable() public Hashtable(int capacity)
2、向Hashtable添加元素
向Hashtable添加元素时,可以采用系统提供的Add方法。其语法格式如:public virtual void Add(Object key,Object value)
下面举个详细点的例子如:
Hashtable hashtable = new Hashtable(); //实例化Hashtable对象
hashtable.Add("id", "600719"); //向Hashtable哈希表中添加元素
hashtable.Add("name", "denylau");
hashtable.Add("sex", "男");
Console.WriteLine(hashtable.Count); //获得Hashtable哈希表中的元素个数
3、删除Hashtable中的元素
·Clear方法:该方法用来移除Hashtable中的所有元素,其语法格式如:public virtual void Clear()
Hashtable hashtable = new Hashtable(); //实例化Hashtable对象
hashtable.Add("id", "600719"); //向Hashtable哈希表中添加元素
hashtable.Add("name", "denylau");
hashtable.Add("sex", "男");
hashtable.Clear(); //移除Hashtable哈希表中的元素
Console.WriteLine(hashtable.Count);
·Remove方法:该方法用来从Hashtable中移除带有指定键的元素,其语法格式如下:public virtual void Remove(Object value)
Hashtable hashtable = new Hashtable(); //实例化Hashtable对象
hashtable.Add("id", "600719"); //向Hashtable哈希表中添加元素
hashtable.Add("name", "denylau");
hashtable.Add("sex", "男");
hashtable.Remove("sex"); //移除Hashtable哈希表中的指定元素
Console.WriteLine(hashtable.Count);
4、Hashtable的遍历
遍历其实与数组类似,但是Hashtable中的元素是一个键值对的集合,因此需要使用DictionaryEntry类型来遍历,下面通过一个例子来说明下吧!
Hashtable hashtable = new Hashtable(); //实例化Hashtable对象
hashtable.Add("id", "600719"); //向Hashtable哈希表中添加元素
hashtable.Add("name", "denylau");
hashtable.Add("sex", "男");
Console.WriteLine("\t 键\t 值");
//遍历Hashtable哈希表中的元素并输出其键值对
foreach (DictionaryEntry dicEntry in hashtable)
{
Console.WriteLine("\t " + dicEntry.Key + "\t " + dicEntry.Value);
}
Console.WriteLine();
5、Hashtable提供的其它方法介绍
·Contains方法:该方法用来确定Hashtable中是否包含特定键,其语法格式如:public virtual bool Contains(Object key)
Hashtable hashtable = new Hashtable(); //实例化Hashtable对象
hashtable.Add("id", "600719"); //向Hashtable哈希表中添加元素
hashtable.Add("name", "denylau");
hashtable.Add("sex", "男");
Console.WriteLine(hashtable.Contains("id")); //判断Hashtable哈希表中是否包含指定的键
·ContainsValue方法:该方法用来确定Hashtable中是否包含特定值,其语法格式如:public virtual bool ContainsVlaue(Object value)
Hashtable hashtable = new Hashtable(); //实例化Hashtable对象
hashtable.Add("id", "600719"); //向Hashtable哈希表中添加元素
hashtable.Add("name", "denylau");
hashtable.Add("sex", "男");
Console.WriteLine(hashtable.ContainsValue("id")); //判断Hashtable哈希表中是否包含指定的键值
6、对哈希表进行排序
对哈希表进行排序在这里的定义是对key/value键值对中的key按一定规则重新排列,但是实际上这个定义是不能实现的,因为我们无法直接在Hashtable进行对key进行重新排列,如果需要Hashtable提供某种规则的输出,可以采用一种变通的做法: ArrayList akeys=new ArrayList(ht.Keys); //别忘了导入System.Collections akeys.Sort(); //按字母顺序进行排序 for(string skey in akeys) { Console.Write(skey + ":"); Console.WriteLine(ht[skey]);//排序后输出 }