HashTable应用
一、哈希表(Hashtable)简述
在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似key/value的键值对,其中key通常可用来快速查找,同时key是区分大小写;value用于存储对应于key的值。Hashtable中key/value键值对均为object类型,所以Hashtable可以支持任何类型的key/value键值对。
二、哈希表的简单操作
在哈希表中添加一个key/value键值对
HashTableObject.Add(key,value)
例子:
Hashtable myHT = new Hashtable();
myHT.Add(0, "zero");
myHT.Add(1, "one");
myHT.Add(2, "two");
myHT.Add(3, "three");
myHT.Add(4, "four");
myHT.Add(1, "one");
myHT.Add(2, "two");
myHT.Add(3, "three");
myHT.Add(4, "four");
在哈希表中去除某个key/value键值对:
HashtableObject.Remove(key);
例子:
myHT.Remove(0);
从哈希表中移除所有元素
HashtableObject.Clear();
例子:
例子:
myHT.Clear();
判断键是否已经存在
HashTableObject.Contain(key)
返回一个bool值
例子:
bool b = myHT.Contain(1);
遍历键
foreach (object key in HashTableObject.keys){}
遍历值
foreach (object key in HashTableObject.values){}
遍历哈希表键值对
foreach (DictionaryEntry de in HashTableObject)
{
Console.WriteLine(de.Key);// 取得键
Console.WriteLine(de.Value);// 取得值
}
排序输出
ArrayList akeys = new ArrayList(HashTableObject.Keys);
akeys.Sort();
例子
class Program
{
static void Main(string[] args)
{
Hashtable table = new Hashtable();
Console.WriteLine("------------------------------------------");
//哈希表的添加例子
table.Add(0,"zero");
table.Add(1, "one");
table.Add(2, "two");
table.Add(3, "three");
//显示哈希表的记录
PrintTable(table);
Console.ReadKey();
Console.WriteLine("------------------------------------------");
//哈希表的删除例子
Console.WriteLine("please input a num:");
int i = int.Parse(Console.ReadLine());
table.Remove(i);
//显示哈希表的记录
PrintTable(table);
Console.ReadKey();
Console.WriteLine("------------------------------------------");
//哈希表判断是否有键存在
Console.WriteLine("please input a num:");
i = int.Parse(Console.ReadLine());
Console.WriteLine("Value is a '{0}'",table.Contains(i));
Console.WriteLine("------------------------------------------");
//哈希表移除所有元素的例子
table.Clear();
//显示哈希表的记录
PrintTable(table);
Console.WriteLine("------------------------------------------");
Console.ReadKey();
}
private static void PrintTable(Hashtable table)
{
foreach (DictionaryEntry d in table)//Dictionary
{
Console.WriteLine("{0}\t{1}",d.Key ,d.Value );
}
}
}
{
static void Main(string[] args)
{
Hashtable table = new Hashtable();
Console.WriteLine("------------------------------------------");
//哈希表的添加例子
table.Add(0,"zero");
table.Add(1, "one");
table.Add(2, "two");
table.Add(3, "three");
//显示哈希表的记录
PrintTable(table);
Console.ReadKey();
Console.WriteLine("------------------------------------------");
//哈希表的删除例子
Console.WriteLine("please input a num:");
int i = int.Parse(Console.ReadLine());
table.Remove(i);
//显示哈希表的记录
PrintTable(table);
Console.ReadKey();
Console.WriteLine("------------------------------------------");
//哈希表判断是否有键存在
Console.WriteLine("please input a num:");
i = int.Parse(Console.ReadLine());
Console.WriteLine("Value is a '{0}'",table.Contains(i));
Console.WriteLine("------------------------------------------");
//哈希表移除所有元素的例子
table.Clear();
//显示哈希表的记录
PrintTable(table);
Console.WriteLine("------------------------------------------");
Console.ReadKey();
}
private static void PrintTable(Hashtable table)
{
foreach (DictionaryEntry d in table)//Dictionary
{
Console.WriteLine("{0}\t{1}",d.Key ,d.Value );
}
}
}