HashTable 通常称为哈希表,它表示键(key)/值(value)对的集合。

1、HashTable 的构造函数:

HashTable()              //初始化为0个元素的空实例
           HashTable(Int32)      //初始化为int32 个元素的新实例

例子:
                      HashTable myHashTable1 = new HashTable();
                      HashTable myHashTable2 = new HashTable(5);

2、HashTable 元素的特点

HashTable 获取元素的方法是使用“键”访问键所对应的值,即HashTable[key]。下面是例子:

using System;
           using System.Collections.Generic;
           using System.Text;
           using System.Collections;

namespace Example9_22
           {
               class Program
               {
                   static void Main(string[] args)
                   {
                       Hashtable myHashTable = new Hashtable();
                       //插入相应的键和值组成的元素
                       myHashTable.Add(1,"H");
                       myHashTable.Add(2,"e");
                       myHashTable.Add(3,"l");
                       myHashTable.Add(4,"l");
                       myHashTable.Add(5,"o");
                       myHashTable.Add("int",1);
                       myHashTable.Add("double",2.3);
                       myHashTable.Add("bool",true);
                       //修改相应的键和值组成的元素
                       myHashTable["int"] = 23;
                       myHashTable["double"] = 1.5;
                       myHashTable["bool"] = false;
                       //输出相应的键和值组成的元素
                       Console.WriteLine(myHashTable[1]);
                       Console.WriteLine(myHashTable[2]);
                       Console.WriteLine(myHashTable[3]);
                       Console.WriteLine(myHashTable[4]);
                       Console.WriteLine(myHashTable[5]);
                       Console.WriteLine(myHashTable["int"]);
                       Console.WriteLine(myHashTable["double"]);
                       Console.WriteLine(myHashTable["bool"]);
                       Console.ReadLine();
                   }
               }
           }
           程序运行结果如下:
                                           H
                                           e
                                           l
                                           l
                                           o
                                           23
                                           1.5
                                           False

3、Hashtable 元素的操作

● 添加操作的定义如下:
                                                 public virtual void Add(object key,lbject value)

注意:“键”不能为空,“值可以为空”。

● 删除操作:
                                HashTable.Clear()         //删除所有元素,不带任何参数,清空后HashTable的元素个数为0。
                                        示例:myHashTable.Clear()
                                HashTable.Remove()    //删除指定“键”所在的元素。
                                        其定义如下:
                                                              public virtual void Remove(Object key)
                                        示例:myHashTable.Remove("int");

如果HashTable 为只读时进行上述操作会出现异常。

4、Hashtable 的遍历

由于Hashtable 的键值对属于DictionaryEntry类型,所以在用foreach 遍历Hashtable 时,类型参数是:DictionaryEntry。看下面示例:
                foreach (DictionatyEntry,myDE in myHashTable)
                {
                     Console.WriteLine("\t{0}\t{1}",myDE.Key,myDE.Value);    //注意读取键值的方法
                }

5、Hashtable 的查询

Hashtable 查询有以下方法:
                                                       ● Hashtable.Contains            //判断HashTable中是否包含指定“键”。
                                                       ● Hashtable.ContainsKey      //判断HashTable中是否包含指定“键”。同上
                                                       ● Hashtable.ContainsValue   //判断HashTable中是否包含指定值。很好!

示例:
                    Console.WriteLine("myHashTable 包含键1:{0}",myHashTable.Contains(1));
                    Console.WriteLine("myHashTable 包含键6:{0}",myHashTable.ContainsKey(6));
                    Console.WriteLine("myHashTable 包含值true:{0}",myHashTable.ContainsValue(true));
                    Console.WriteLine("myHashTable 包含值3.3:{0}",myHashTable.ContainsValue(2.2));

6、HashTable 表的优点

HashTable是System.Collections命名空间提供的一个容器,HashTable中的key/value均为object类型,所以HashTable可以支持任何类型的key/value键/值对。
         HashTable的优点就在于其索引的方式,速度非常快。

******************

key区分大小写

提两个问题:
                        △可以输入重复的键吗?
                        △HashTable 可以插入键值吗?

转载于:https://www.cnblogs.com/chuncn/archive/2008/04/10/1147406.html

哈希表(HashTable)探究(转)相关推荐

  1. 在C#中应用哈希表(Hashtable)

    一,哈希表(Hashtable)简述 在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似key/value的键值对,其 ...

  2. 哈希表(hashtable)的javascript简单实现

    javascript中没有像c#,java那样的哈希表(hashtable)的实现.在js中,object属性的实现就是hash表,因此只要在object上封装点方法,简单的使用obejct管理属性的 ...

  3. C#中哈希表(HashTable)的用法详解

    1.  哈希表(HashTable)简述 在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似keyvalue的键值对, ...

  4. 哈希表 Hashtable c# 1613537346

    哈希表 Hashtable c# 1613537346 使用命名空间 using System.Collections; 实例化得到对象 Hashtable 对象 = new Hashtable(); ...

  5. hash table html,javascript 哈希表(hashtable)的简单实现

    首先简单的介绍关于属性的一些方法: 属性的枚举: for/in循环是遍历对象属性的方法.如 var obj = { name : 'obj1', age : 20, height : '176cm' ...

  6. 哈希表 HashTable对象 c#

    导入命名空间 using System.Collections; 生成哈希表对象 Hashtable ht = new Hashtable(); ht是变量名 哈希表特点 以键值对形式存值 模型是驿站 ...

  7. OpenAirInterface中的哈希表hashtable实现

    目录 项目名称 源代码 hashtable.h.obj_hashtable.h hashtable.c.obj_hashtable.c demos 项目名称 OpenAirInterface 源代码 ...

  8. Python数据结构实战——哈希表(HashTable)

    文章目录 1.定义哈希转换函数 2.定义哈希表类 2.1.不使用__setitem__ 2.2.使用__setitem__ 1.定义哈希转换函数 def get_hash(key):hash = 0f ...

  9. 哈希表 HashTable

    (1)哈希表底层存储结构也是线性表 (2)哈希表的核心在于哈希函数,哈希函数用于获取index值,决定了将元素放在哪个位置 (3)hash表的增删查时间复杂度都是O(1) 可以根据hash函数直接定位 ...

  10. 【从蛋壳到满天飞】JS 数据结构解析和算法实现-哈希表

    前言 [从蛋壳到满天飞]JS 数据结构解析和算法实现,全部文章大概的内容如下: Arrays(数组).Stacks(栈).Queues(队列).LinkedList(链表).Recursion(递归思 ...

最新文章

  1. neutron linux网络命令,OpenStack Neutron网络组件介绍(重要)
  2. strtol函数参数详解
  3. python画车辆轨迹图,在python中绘制轨道轨迹
  4. Github年度人气最高的TOP10 Python项目
  5. 通过 Apache Ant 来运行 Tomcat
  6. 团体程序设计天梯赛-练习集L1-011 A-B (20分)getline输入
  7. 计算机应用基础自考,自考计算机应用基础
  8. Shopify 入门 (英文)
  9. 搭建JEESZ分布式架构1--CentOs下安装jdk7(环境准备)
  10. mysql stop salve_MySQL主从切换
  11. excel转word_excel怎么转word?常用方法合集,看你使用哪一种
  12. 如何写毕业设计——开题报告
  13. 外接USB蓝牙设置无法启动
  14. 《设计模式》笔记 02 - 实例研究:设计一个文档编辑器
  15. 《袁老师访谈录》第十九期-【在商言商·思享会】(第一场)“企业如何抓住新一代科技红利”...
  16. 智能汽车里究竟“藏”有多少传感器?
  17. 接口测试平台代码实现2:本平台项目目录解析
  18. 第四节——提炼模型:思维模型
  19. 射频标签工作频率的分类
  20. 练习聚合函数的综合练习题

热门文章

  1. String类的一些常见的获取方法(5)
  2. 字体小于12px解决办法
  3. 排错“未能封送类型,因为嵌入数组实例的长度与布局中声明的长度不匹配”...
  4. [Webapp]国内移动端浏览器占比
  5. 从 class 文件 看 synchronize 锁膨胀过程(偏向锁 轻量级锁 自旋锁 重量级锁)
  6. 前端js判空处理,js字符串判空,js数组判空
  7. RabbitMQ六种队列模式-发布订阅模式
  8. fs-extra导出换行txt文件
  9. 支付宝当面付接口如何计算优惠
  10. Python四大金刚之三:元组