C#中HashTable简介和使用用法

 我来答
天罗网17
2022-10-20 · TA获得超过6139个赞
知道小有建树答主
回答量:306
采纳率:100%
帮助的人:70.9万
展开全部

  一 简介

  名词介绍 散列表(Hash table 也叫哈希表) 是根据关键码值(Key value)而直接进行访问的数据结构 也就是说 它通过把关键码值映射到表中一个位置来访问记录 以加快查找的速度 这个映射函数叫做散列函数 存放记录的数组叫做散列表

  HashTable 表的优点 HashTable是System Collections命名空间提供的一个容器 HashTable中的key/value均为object类型 所以HashTable可以支持任何类型的key/value键/值对

  HashTable的优点就在于其索引的方式 速度非常快

  二 哈希表的简单操作

  在哈希表中添加一个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);

  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此处将不会有任何输出

  }

  }

  三 遍历哈希表

  遍历哈希表需要用到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

  }

  四 对哈希表进行排序

  对哈希表进行排序在这里的定义是对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]);            // 排序后输出

lishixinzhi/Article/program/net/201311/12422

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式