一
,
哈希表
(Hashtable)
简述<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
在
.NET Framework
中,
Hashtable
是
System.Collections
命名空间提供的一个容器,用于处理和表现类似
keyvalue
的键值对,其中
key
通常可用来快速查找,同时
key
是区分大小写;
value
用于存储对应于
key
的值。
Hashtable
中
keyvalue
键值对均为
object
类型,所以
Hashtable
可以支持任何类型的
keyvalue
键值对
.
二
,
哈希表的简单操作
在哈希表中添加一个
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);
在哈希表中去除某个 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 此处将不会有任何输出
}
}
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
}
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]); 排序后输出
}
ArrayList akeys=new ArrayList(ht.Keys); file 别忘了导入 System.Collections
akeys.Sort(); file 按字母顺序进行排序
for(string skey in akeys)
{
Console.Write(skey + );
Console.WriteLine(ht[skey]); 排序后输出
}
西安通瀛软件 http://www.rjtraining.cn
转载于:https://blog.51cto.com/rjtrainin/284898