简单数据结构类——Hashtable

简介: 简单数据结构类——Hashtable

Hashtable类代表了一系列基于键的哈希代码组织起来的键/值对。它使用键来访问集合中的元素。它的主要作用就是提高数据查询的效率。当我们使用键访问元素时,则使用Hashtable,而且我们可以识别一个有用的键值。Hashtable中的每一项都有一个键/值对。键用于访问集合中的项目。

我们一般在下列四种情况下会选择使用Hashtable

1.某些数据会被高频率查询

2.数据量大

3.查询字段包含字符串类型

4.数据类型不唯一

那么我们改如何申明Hashtable呢,我们可以使用以下代码来申明:

Hashtable hashtable = new Hashtable();//Hashtable在System.Collections命名空间下定义;因此,在程序中使用Hashtable时,必须添加System.Collections命名空间

下面列举 Hashtable 类的一些常用的 方法:

public virtual void Add( object key, object value );//向 Hashtable 添加一个带有指定的键和值的元素。
public virtual void Clear();//从 Hashtable 中移除所有的元素。
public virtual bool ContainsKey( object key );//判断 Hashtable 是否包含指定的键。
public virtual bool ContainsValue( object value );//判断 Hashtable 是否包含指定的值。
public virtual void Remove( object key );//从 Hashtable 中移除带有指定的键的元素。

需要注意的是,Hashtable的增删查改与之前不同。Hashtable增加数据时,不能出现相同的键;如果想要在Hashtable中删除数据,只能通过通过键来删除,删除不存在的键时没有反应,如果想要删除某些数据,也可以通过清空的方式进行删除;查看Hashtable中的数据是否存在时,我们可以通过键检测或者值检测两种方式进行查看;我们如果想要更改Hashtable中的内容时,只能更改键对应的值内容,无法修改键。

遍历

得到键值对 对数

Console.WriteLine(hashtable.Count);

遍历所有键

foreach(object item in hashtable.Keys)
{
Console.WriteLine(“键:”+item);
Console.WriteLine(“值:”+hashtable[item]);
}

遍历所有值

foreach(object item in hashtable.Values)
{
Console.WriteLine(“键:”+item);
}

键值对一起遍历

foreach(object item in hashtable)
{
Console.WriteLine(“键:”+item.Key+”值:”+item.Value);
}

迭代器遍历

IDictionaryEnumerator myEnumerator = hashtable.GetEnumerator();
bool flag = myEnumerator.MoveNext();
While(flag)
{
Console.WriteLine(“键:”+myEnumerator.Key+”值:”+myEnumerator.Value);
flag = myEnumerator.MoveNext();
}

由于Queue用万物之父来存储数据,所以存在装箱拆箱的概念。当我们往其中进行值类型存储时,就是在装箱;当我们将值类型对象取出来转换使用时,就是在拆箱。

目录
相关文章
|
存储 缓存 数据库
Python高级数据结构——散列表(Hash Table)
Python高级数据结构——散列表(Hash Table)
135 1
Python高级数据结构——散列表(Hash Table)
|
8月前
|
存储 安全 Java
Hashtable和HashMap:差异,数据结构概述,以及JDK的影响
Hashtable和HashMap:差异,数据结构概述,以及JDK的影响
58 0
|
8月前
|
存储 算法 索引
Python 数据结构和算法:什么是散列表(Hash Table)?在 Python 中如何实现?
Python 数据结构和算法:什么是散列表(Hash Table)?在 Python 中如何实现?
82 0
|
存储 缓存 安全
【JavaSE专栏55】Java集合类HashTable解析,基于哈希表实现的唯一性键值对存储数据结构
【JavaSE专栏55】Java集合类HashTable解析,基于哈希表实现的唯一性键值对存储数据结构
129 0
|
存储 算法 JavaScript
基础数据结构(四):哈希表 HashTable(TS版)
基础数据结构(四):哈希表 HashTable(TS版)
基础数据结构(四):哈希表 HashTable(TS版)
|
存储 算法 前端开发
每周一练 之 数据结构与算法(Dictionary 和 HashTable)
每周一练 之 数据结构与算法(Dictionary 和 HashTable)
93 0
|
算法 存储 Serverless
数据结构是哈希表(hashTable)
哈希表也称为散列表,是根据关键字值(key value)而直接进行访问的数据结构。也就是说,它通过把关键字值映射到一个位置来访问记录,以加快查找的速度。这个映射函数称为哈希函数(也称为散列函数),映射过程称为哈希化,存放记录的数组叫做散列表。比如我们可以用下面的方法将关键字映射成数组的下标:arrayIndex = hugeNumber % arraySize。       
1353 0
|
2月前
|
C语言
【数据结构】栈和队列(c语言实现)(附源码)
本文介绍了栈和队列两种数据结构。栈是一种只能在一端进行插入和删除操作的线性表,遵循“先进后出”原则;队列则在一端插入、另一端删除,遵循“先进先出”原则。文章详细讲解了栈和队列的结构定义、方法声明及实现,并提供了完整的代码示例。栈和队列在实际应用中非常广泛,如二叉树的层序遍历和快速排序的非递归实现等。
283 9
|
2月前
|
存储 算法
非递归实现后序遍历时,如何避免栈溢出?
后序遍历的递归实现和非递归实现各有优缺点,在实际应用中需要根据具体的问题需求、二叉树的特点以及性能和空间的限制等因素来选择合适的实现方式。
44 1
|
11天前
|
存储 C语言 C++
【C++数据结构——栈与队列】顺序栈的基本运算(头歌实践教学平台习题)【合集】
本关任务:编写一个程序实现顺序栈的基本运算。开始你的任务吧,祝你成功!​ 相关知识 初始化栈 销毁栈 判断栈是否为空 进栈 出栈 取栈顶元素 1.初始化栈 概念:初始化栈是为栈的使用做准备,包括分配内存空间(如果是动态分配)和设置栈的初始状态。栈有顺序栈和链式栈两种常见形式。对于顺序栈,通常需要定义一个数组来存储栈元素,并设置一个变量来记录栈顶位置;对于链式栈,需要定义节点结构,包含数据域和指针域,同时初始化栈顶指针。 示例(顺序栈): 以下是一个简单的顺序栈初始化示例,假设用C语言实现,栈中存储
127 75

热门文章

最新文章