哈希表(Hashtable)
Hashtable 类代表了一系列基于键的哈希代码组织起来的键/值对。它使用键来访问集合中的元素。
当您使用键访问元素时,则使用哈希表,而且您可以识别一个有用的键值。哈希表中的每一项都有一个键/值对。键用于访问集合中的项目。
key通常可用来快速查找,同时key是区分大小写;value用于存储对应于key的值。Hashtable中key/value键值对均为object类型,所以Hashtable可以支持任何类型的key/value键值对
在哈希表中添加一个key/value键值对:HashtableObject.Add(key,value);
在哈希表中去除某个key/value键值对:HashtableObject.Remove(key);
从哈希表中移除所有元素: HashtableObject.Clear();
判断哈希表是否包含特定键key: HashtableObject.Contains(key);
Hashtable 类的方法和属性
下表列出了 Hashtable 类的一些常用的 属性:
属性 | 描述 |
---|---|
Count | 获取 Hashtable 中包含的键值对个数。 |
IsFixedSize | 获取一个值,表示 Hashtable 是否具有固定大小。 |
IsReadOnly | 获取一个值,表示 Hashtable 是否只读。 |
Item | 获取或设置与指定的键相关的值。 |
Keys | 获取一个 ICollection,包含 Hashtable 中的键。 |
Values | 获取一个 ICollection,包含 Hashtable 中的值。 |
下表列出了 Hashtable 类的一些常用的 方法:
序号 | 方法名 & 描述 |
---|---|
1 | public virtual void Add( object key, object value ); 向 Hashtable 添加一个带有指定的键和值的元素。 |
2 | public virtual void Clear(); 从 Hashtable 中移除所有的元素。 |
3 | public virtual bool ContainsKey( object key ); 判断 Hashtable 是否包含指定的键。 |
4 | public virtual bool ContainsValue( object value ); 判断 Hashtable 是否包含指定的值。 |
5 | public virtual void Remove( object key ); 从 Hashtable 中移除带有指定的键的元素。 |
实例:
static void Main(string[] args) { Hashtable ht = new Hashtable();//声明一个Hashtable表 ht.Add("鱼", "小雨");//添加带有 键和值的元素。 ht.Add("键", "值");//添加带有 键和值的元素。 ht.Add("01", "aa");//添加带有 键和值的元素。 ht.Add("02", "bb");//添加带有 键和值的元素。 ht.Add("03", "cc");//添加带有 键和值的元素。 ht.Add("04", "dd");//添加带有 键和值的元素。 ht.Add("05", "ee");//添加带有 键和值的元素。 ht.Add(01, 001);//添加带有 键和值的元素。 ht.Add(02, 002);//添加带有 键和值的元素。 ht.Add(03, "abc");//添加带有 键和值的元素。 ht.Add("tt", 12345);//添加带有 键和值的元素。 if (ht.ContainsValue(001))//判断表中是否有001数据 { Console.WriteLine("Hashtable表中包括001值.");//输出 } Console.WriteLine("Hashtable表中不包括001值.");//输出 ht.Remove("02");//删除表中 键值为:02 字符串的值 ICollection k = ht.Keys;//获取表中所有的键。 foreach (var s in k)//遍历键。 { Console.WriteLine(s+"键中对应的值为:"+ht[s]);//输出 } Console.ReadKey();//按任意键结束 }
输出结果:
哈希表(Hashtable)缺点和动态数组(ArrayList)表一样,可以添加任何数据类型,添加的类型是:Object类型。