一、哈希表(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);
在哈希表中去除某个key/value键值对:HashtableObject.Remove(key);
从哈希表中移除所有元素:                HashtableObject.Clear();
判断哈希表是否包含特定键key:         HashtableObject.Contains(key);
下面控制台程序将包含以上所有操作:

using System;
using System.Collections; //使用Hashtable时,必须引入这个命名空间
class hashtable
{
     public static void Main()
     {
     Hashtable ht=new Hashtable(); //创建一个Hashtable实例
     ht.Add("E","e");//添加key/value键值对
     ht.Add("A","a");
     ht.Add("C","c");
     ht.Add("B","b");
     string s=(string)ht["A"];
     if(ht.Contains("E")) //判断哈希表是否包含特定键,其返回值为true或false
       Console.WriteLine("the E key:exist");
     ht.Remove("C");//移除一个key/value键值对
     Console.WriteLine(ht["A"]);//此处输出a
     ht.Clear();//移除所有元素
     Console.WriteLine(ht["A"]); //此处将不会有任何输出
     }
}

三、遍历哈希表
遍历哈希表需要用到DictionaryEntry Object,代码如下:

for(DictionaryEntry de in ht) //ht为一个Hashtable实例
{
    Console.WriteLine(de.Key);//de.Key对应于key/value键值对key
    Console.WriteLine(de.Value);//de.Key对应于key/value键值对value
}

四、对哈希表进行排序
     对哈希表进行排序在这里的定义是对key/value键值对中的key按一定规则重新排列,但是实际上这个定义是不能实现的,因为我们无法直接在Hashtable进行对key进行重新排列,如果需要Hashtable提供某种规则的输出,可以采用一种变通的做法:

ArrayList akeys=new ArrayList(ht.Keys); //别忘了导入System.Collections
akeys.Sort(); //按字母顺序进行排序
foreach(string skey in akeys)
{
    Console.Write(skey + ":");
    Console.WriteLine(ht[skey]);//排序后输出
}

转载于:https://www.cnblogs.com/wf225/archive/2008/01/14/1038086.html

C# 集合类(四):Hashtable相关推荐

  1. C#非泛型集合类-使用HashTable组织数据

    HashTable称为哈希表,是System.Collections命名空间中的一个重要的类.与ArrayList不同,哈希表可以存储键/值(key/value)对的集合.如果把哈希表当做字典,那么& ...

  2. HashMap、Hashtable、HashSet和ConcurrentHashMap掐死版本

    1.HashMap 1).HashMap 是基于哈希表的 Map 接口的非同步实现.此实现提供所有可选的映射操作,并允许使用 null 值和 null 键. 2).HashMap 底层就是一个数组结构 ...

  3. java服务器访问接口提示network error_北京JAVA开发三年,拿到美团35K的offer面试心得...

    前言 长文干货提示,文章为大家完整记录了一位在北京做了3年的JAVA开发的朋友,如何通过美团的面试及拿到35K的offer.全篇内容由全程电话录音再手打腾稿,原创手打不易,请记得三连支持! 文章末尾有 ...

  4. 快速上手系列:传智播客Java基础笔记

    配置环境,把JDK的bin所在路径复制到Path,末尾加; 基本语法 二  标识符 (1)就是给类,接口,方法,变量等起名字的字符序列 (2)组成规则:A:英文大小写字母    B:数字    C:$ ...

  5. 几家大厂求职与面试(一):Java必备,不看就是遗憾

    基础概念 面向对象的三个特征 封装,继承,多态.这个应该是人人皆知.有时候也会加上抽象. 多态的好处 允许不同类对象对同一消息做出响应,即同一消息可以根据发送对象的不同而采用多种不同的行为方式(发送消 ...

  6. Java基础-22总结登录注册IO版,数据操作流,内存操作流,打印流,标准输入输出流,转换流,随机访问流,合并流,序列化流,Properties...

    你需要的是什么,直接评论留言. 获取更多资源加微信公众号"Java帮帮" (是公众号,不是微信好友哦) 还有"Java帮帮"今日头条号,技术文章与新闻,每日更新 ...

  7. java7G怎么表示_Java研发方向如何准备BAT技术面试答案(上)

    最近因为忙于工作,没时间整理,本篇是下班后晚上抽空整理的,文中部分答案本来是想自己好好整理一份的,但是时间真的很紧,所以就整理了一下网络上的文章链接,挑了写的不错的文章,后续有时间补上来.后续的答案及 ...

  8. 多线程,io,网编,反射,xml

    代码全部手敲,永远不要相信你看到的结论,自己编码后运行出来的,才是自己的.1111111111111111111111111111111111111111111111 1111111111111111 ...

  9. 【Java】Java基础

    1:计算机概述(了解) (1)计算机 (2)计算机硬件 (3)计算机软件 系统软件:window,linux,mac 应用软件:qq,yy (4)软件开发(理解) 软件:是由数据和指令组成的.(计算器 ...

  10. JAVA_SE基础知识笔记

    day01总结 1:计算机概述(了解)(1)计算机(2)计算机硬件(3)计算机软件系统软件:window,linux,mac应用软件:qq,yy,飞秋(4)软件开发(理解)软件:是由数据和指令组成的. ...

最新文章

  1. 三菱je-a系列伺服支持modbusrtu 协议吗_入门课程 | 三菱FX系列PLC的软元件介绍
  2. 题目1102:最小面积子矩阵
  3. 神经网络参数迁移与惯性质量
  4. 2018 亚太数学建模大赛B题解题思路
  5. HDR视频生态圈追踪
  6. RegularExpressionValidator 常用
  7. wcf wpf mfc 区别
  8. 基于JAVA+SpringMVC+Mybatis+MYSQL的保险业务管理系统
  9. GO语言学习之路26
  10. DZY Loves Graph
  11. centos安装stress安装失败_Linux压力测试工具Stress的使用指南
  12. 深度学习1-深度学习框架介绍
  13. JavaWeb:Maven
  14. python判断回文字符串不考虑空格符号大小写_检查带有忽略的标点符号、空格和cas的回文文本...
  15. 滨江机器人餐厅_滨江机器人的视觉效果好吗?
  16. 内存操作函数:memcmp、memcpy、memmove、memset 的使用与模拟。
  17. 怎样做音乐相册?简单又好看的音乐相册怎么做?
  18. LM08丨网格系列之网格反转(精)
  19. 计算机毕业设计Java河池市旅游信息系统(源码+系统+mysql数据库+lw文档)
  20. 深入理解Python中的if语句

热门文章

  1. 详解Linux运维工程师打怪升级篇
  2. 条款10 令operator=返回一个reference to *this
  3. ES6之let(理解闭包)和const命令
  4. 补第一阶段冲刺站立会议3(应发表日期5月15日)
  5. 如何利用webmin在Linux主机中添加网站
  6. 位运算及在java中的应用整理
  7. 内存管理 初始化(七)kmem_cache_init_late 初始化slab分配器(下)
  8. 使用临界区 CRITICAL_SECTION 实现互斥
  9. TongJI Online Judge预赛(2): LOVE LETTER
  10. 如何构建优雅的ViewController