哈希表(HashTable)探究(转)
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)探究(转)相关推荐
- 在C#中应用哈希表(Hashtable)
一,哈希表(Hashtable)简述 在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似key/value的键值对,其 ...
- 哈希表(hashtable)的javascript简单实现
javascript中没有像c#,java那样的哈希表(hashtable)的实现.在js中,object属性的实现就是hash表,因此只要在object上封装点方法,简单的使用obejct管理属性的 ...
- C#中哈希表(HashTable)的用法详解
1. 哈希表(HashTable)简述 在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似keyvalue的键值对, ...
- 哈希表 Hashtable c# 1613537346
哈希表 Hashtable c# 1613537346 使用命名空间 using System.Collections; 实例化得到对象 Hashtable 对象 = new Hashtable(); ...
- hash table html,javascript 哈希表(hashtable)的简单实现
首先简单的介绍关于属性的一些方法: 属性的枚举: for/in循环是遍历对象属性的方法.如 var obj = { name : 'obj1', age : 20, height : '176cm' ...
- 哈希表 HashTable对象 c#
导入命名空间 using System.Collections; 生成哈希表对象 Hashtable ht = new Hashtable(); ht是变量名 哈希表特点 以键值对形式存值 模型是驿站 ...
- OpenAirInterface中的哈希表hashtable实现
目录 项目名称 源代码 hashtable.h.obj_hashtable.h hashtable.c.obj_hashtable.c demos 项目名称 OpenAirInterface 源代码 ...
- Python数据结构实战——哈希表(HashTable)
文章目录 1.定义哈希转换函数 2.定义哈希表类 2.1.不使用__setitem__ 2.2.使用__setitem__ 1.定义哈希转换函数 def get_hash(key):hash = 0f ...
- 哈希表 HashTable
(1)哈希表底层存储结构也是线性表 (2)哈希表的核心在于哈希函数,哈希函数用于获取index值,决定了将元素放在哪个位置 (3)hash表的增删查时间复杂度都是O(1) 可以根据hash函数直接定位 ...
- 【从蛋壳到满天飞】JS 数据结构解析和算法实现-哈希表
前言 [从蛋壳到满天飞]JS 数据结构解析和算法实现,全部文章大概的内容如下: Arrays(数组).Stacks(栈).Queues(队列).LinkedList(链表).Recursion(递归思 ...
最新文章
- neutron linux网络命令,OpenStack Neutron网络组件介绍(重要)
- strtol函数参数详解
- python画车辆轨迹图,在python中绘制轨道轨迹
- Github年度人气最高的TOP10 Python项目
- 通过 Apache Ant 来运行 Tomcat
- 团体程序设计天梯赛-练习集L1-011 A-B (20分)getline输入
- 计算机应用基础自考,自考计算机应用基础
- Shopify 入门 (英文)
- 搭建JEESZ分布式架构1--CentOs下安装jdk7(环境准备)
- mysql stop salve_MySQL主从切换
- excel转word_excel怎么转word?常用方法合集,看你使用哪一种
- 如何写毕业设计——开题报告
- 外接USB蓝牙设置无法启动
- 《设计模式》笔记 02 - 实例研究:设计一个文档编辑器
- 《袁老师访谈录》第十九期-【在商言商·思享会】(第一场)“企业如何抓住新一代科技红利”...
- 智能汽车里究竟“藏”有多少传感器?
- 接口测试平台代码实现2:本平台项目目录解析
- 第四节——提炼模型:思维模型
- 射频标签工作频率的分类
- 练习聚合函数的综合练习题