哈希表

哈希表,名-值对。类似于字典(比数组更强大)。哈希表是经过优化的,访问下标的对象先散列过。如果以任意类型键值访问其中元素会快于其他集合。GetHashCode()方法返回一个int型数据,使用这个键的值生成该int型数据。哈希表获取这个值最后返回一个索引,表示带有给定散列的数据项在字典中存储的位置。 在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似keyvalue的键值对,其中key通常可用来快速查找,同时key是区分大小写;value用于存储对应于key的值。Hashtable中keyvalue键值对均为object类型,所以Hashtable可以支持任何类型的keyvalue键值对.
1.使用hashtable前.需要添加System.Collections的引用
using System.Collections;
2.添加元素
Hashtable ht =new Hashtable();
ht.Add(key,value);// key,value可以是任何类型
如果key有重复会掷出运行时异常,你可以这样处理
if(ht.Contains(key)==false)
{
ht.Add(key,value);// 不存在则添加
}
也可以这样处理,效率要高些
Try
{
ht.Add(key,value);
}
Catch
{
// 不处理重复异常
}
3.删除元素
ht.Remove(key);
4.删除所有
ht.Clear();
5.判断键是否已经存在
ht.Contains(key) // 这个刚才已经用过了
6.遍历键
foreach(Object key in ht.Keys)
{
}
7.遍历值
foreach(Object value in ht.Values)
{
}
8.同时遍历键值对
foreach(DictionaryEntry de in ht)
{
        Console.WriteLine(de.Key);// 取得键

    Console.WriteLine(de.Value);// 取得值
}
9.排序输出(对值也是一样处理)
ArrayList akeys = new ArrayList(ht.Keys);
akeys.Sort();

示例:
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
namespace ConsoleApplication1
{
class Program
{
   public static void Main()
   {

// Creates and initializes a new Hashtable.
Hashtable myHT = new Hashtable();
myHT.Add("one", "The");
myHT.Add("two", "quick");
myHT.Add("three", "brown");
myHT.Add("four", "fox");

// Displays the Hashtable.
Console.WriteLine("The Hashtable contains the following:");
PrintKeysAndValues(myHT);

}
public static void PrintKeysAndValues(Hashtable myHT)
{
foreach (string s in myHT.Keys)
Console.WriteLine(s);

Console.WriteLine(" -KEY- -VALUE-");
foreach (DictionaryEntry de in myHT)
Console.WriteLine(" {0}: {1}", de.Key, de.Value);
Console.WriteLine();
}
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值