哈希表的基本原理?
我对哈希表的基本概念感到困惑。如果我要编码一个哈希,我什至会开始吗?哈希表和普通数组之间有什么区别?基本上,如果有人回答了这个问题,我想我的所有问题都会得到回答:如果我有100个随机生成的数字(作为键),那么我将如何实现哈希表,以及为什么它比数组有优势?伪代码或Java将被...
2024-01-10图解哈希表及其原理
要点回顾此部分方便知识点快速回顾,首次阅读请从引言部分开始。哈希表(Hash Table)其实也叫散列表,是一个数据结构。哈希表本质上就是一个数组,只不过数组存放的是单一的数据,而哈希表中存放的是键值对(key - value pair)。key 通过哈希函数(hash function)得到数组的索引,进而存取索引位...
2024-01-10哈希表与平衡二叉树
当我需要在散列表或平衡二叉树之间进行选择以实现集合或关联数组时,应该考虑哪些因素?回答:通常来说,我不能回答这个问题。问题是哈希表和平衡二叉树的类型很多,它们的性能差异很大。因此,简单的答案是:它取决于您所需的功能。如果不需要排序,请使用哈希表,否则请使用平衡的二...
2024-01-10C#中的哈希表与字典
Hashtable 哈希表当需要使用键访问元素时,可以使用哈希表,并且可以识别有用的键值。哈希表中的每个项目都有一个键/值对。该键用于访问集合中的项目。Hashtable中的成员是线程安全的。如果我们尝试查找不存在的键,则返回null。哈希表不是通用类型。Hashtable集合比字典慢,因为它需要装箱和拆箱。...
2024-01-10轻松学习C#的哈希表
在C#语言中,还有一种用于快速搜索而组织的键/值组合的数组,这种数组叫做关联数组,也叫做哈希表(Hashtable)。 哈希表也在System.Collection命名空间下,用于处理和表现类似key/value的键值对,其中key通常用来快速查找,同时key是区分大小写,且key必须是唯一的。它没有有效的排序,所...
2024-01-10从JSON创建哈希表
我想获得像这样的Hashtable的JSON表示形式:@{Path="C:\temp"; Filter="*.js"}ConvertTo-Json 结果是:{ "Path": "C:\\temp", "Filter": "*.js"}但是,如果将JSON字符串转换回去,ConvertFrom-Json则不会得到HashTable,而会得到PSCustomObject。那么,如何可靠地序列化上述Hashmap?回答:$json = @{Path=”C:\temp”; Filter=”*.js”...
2024-01-10哈希表使用多少内存?
在Java中,如果我创建一个Hashtable<K, V>并将N个元素放入其中,它将占用多少内存?如果依赖于实现,那么什么才是好的“猜测”?回答:编辑; 这取决于您的VM的内部内存设置(项目的包装,32位或64位指针以及字对齐/大小),并且不是由Java指定的。可以在这里找到有关估计内存使用量的基本信息。...
2024-01-10整数的哈希码
基本类型(例如int)的哈希码是什么?例如,假设num是一个整数。int hasCode = 0;if (num != 0) { hasCode = hasCode + num.hashCode();}回答:对于hashCode一个int最自然的选择是使用int本身。一个更好的问题是,用什么的hashCode的long,因为它不适合的int尺度的哈希码。您的最佳解决方案以及所有hashCode相关问题将是...
2024-01-10图解两数之和:哈希表法
两数之和是一道非常经典,也非常高频的面试题,题目大意如下:今天我们就一起探讨一下这道题的解法。太长不看版可以通过暴力运算,遍历nums中的每一个元素,查找数组剩余部分是否有匹配的值;更高效的方式是利用哈希表key唯一且访问快的特性,建立map存储未命中的值。遍历nums中的元素,...
2024-01-10哈希表在php中的使用
本文操作系统:windows7系统、PHP5.6版本、DELL G3电脑。1.内部组成键(key):用于操作数据的标示,例如PHP数组中的索引,或者字符串键等等。槽(slot/bucket):哈希表中用于保存数据的一个单元,也就是数据真正存放的容器。哈希函数(hash function):将key映射(map)到数据应该存放的slot所在位置的函数。2.优势通...
2024-01-10C#程序在哈希表中查找值
设置元素的Hahtable集合。Hashtable h = new Hashtable();h.Add(1, "Jack");h.Add(2, "Henry");h.Add(3, "Ben");h.Add(4, "Chris");假设现在您需要找到一个值,然后使用该ContainsValue()方法。我们在这里找到值“克里斯”-h.ContainsValue(“Chris”);示例using System;using System.Collections;public class Demo { publ...
2024-01-10哈希码号代表内存地址吗?
我了解到,哈希码是一个唯一标识参考号,它是一个十六进制数。我的疑问是,参考数字代表对象的内存地址吗?例如:Employeee e1=new Employee();System.out.println(e1.hashcode());这段代码会返回我对象的内存地址吗?回答:哈希码不是唯一的标识。它只是一个数字,可以帮助您区分对象。两个不同的对象可...
2024-01-10C#中具有多维键的哈希表
我基本上是在寻找一种使用c#中的二维类型键访问哈希表值的方法。最终我可以做这样的事情HashTable[1][false] = 5;int a = HashTable[1][false];//a = 5这就是我一直在尝试的…没有用Hashtable test = new Hashtable();test.Add(new Dictionary<int, bool>() { { 1, true } }, 555);Dictionary<int, bool> temp = new Dictionary<int, ...
2024-01-10在C#中使用哈希表和字典
哈希表Hashtable类表示键和值对的集合,这些键和值对基于键的哈希码进行组织。它使用键来访问集合中的元素。Hashtable类中的一些常用方法是-序号方法与说明1public virtual void Add(object key, object value);将具有指定键和值的元素添加到哈希表中。2public virtual void Clear();从哈希表中删除所有元素。3public virtual bo...
2024-01-10哈希表-为什么比数组快?
如果我对每个元素都有一个键,但又不知道该元素在数组中的索引,则哈希表的性能要优于数组(O(1)vs O(n))。这是为什么?我的意思是:我有一个密钥,我对其进行了哈希处理。.我具有哈希处理..算法不应该将此哈希与每个元素的哈希进行比较吗?我认为内存配置背后有一些技巧,不是吗?回...
2024-01-10从C#中的哈希表中删除项目
以下是我们的哈希表-Hashtable h = new Hashtable();h.Add(1, "Jack");h.Add(2, "Henry");h.Add(3, "Ben");h.Add(4, "Chris");若要删除项目,请使用Remove()方法。在这里,我们要删除第三个元素。h.Remove(3);让我们看完整的例子。示例using System;using System.Collections;public class Demo { public static void Main() {...
2024-01-10C语言基于哈希表实现通讯录
本文为大家分享了C语言基于哈希表实现通讯录的具体代码,供大家参考,具体内容如下1.需求分析本演示程序用C语言编写,完成哈希表的生成,电话号码的插入、以及查找等功能。 (1)按提示输入相应的联系人的相关资料; (2)以相应的输出形式输出所存储的的联系人的资料; (3)程序可...
2024-01-10合并MD5哈希值
在大文件上计算单个MD5校验和时,通常使用哪种技术将各种MD5值组合为单个值?您是否将它们加在一起?我对执行此操作的任何特定语言,库或API都不感兴趣;我只是对它背后的技术感兴趣。有人可以解释如何完成吗?在伪代码中给出以下算法:MD5Digest Xfor each file segment F MD5Digest Y = CalculateMD5(F) Co...
2024-01-10在C#中将元素添加到哈希表中
要将元素添加到哈希表中,代码如下-示例using System;using System.Collections;public class Demo { public static void Main(){ Hashtable hash = new Hashtable(10); hash.Add("1", "A"); hash.Add("2", "B"); hash.Add("3", "C"); hash.Add("4", "D"); hash...
2024-01-10列表不可哈希,但元组可哈希?
在如何哈希列表?有人告诉我,我应该转换为一个元组第一,如[1,2,3,4,5]到(1,2,3,4,5)。因此,第一个不能散列,而第二个可以散列。为什么*?*我并不是真正地在寻求详细的技术说明,而是在寻找一种直觉回答:主要是因为元组是不可变的。承担以下工作:>>> l = [1, 2, 3]>>> t = (1, 2, 3)>>> x = {l: 'a list', ...
2024-01-10哈希表或哈希表中的重新哈希处理
当大小超过maxthreshold值时,如何在哈希表或哈希表中进行重新哈希处理?是否所有对都已复制到新的存储桶阵列中?重新哈希后,同一存储桶(位于链接列表中)中的元素会发生什么情况?我的意思是说,他们在重新哈希处理后会留在同一个桶中吗?回答:问题中的最大阈值称为负载系数。建议负...
2024-01-10计算C#中哈希表中键/值对的数量
要计算哈希表中键/值对的数量,代码如下-示例using System;using System.Collections;public class Demo { public static void Main() { Hashtable hash = new Hashtable(); hash.Add("A", "SUV"); hash.Add("B", "MUV"); hash.Add("C", "AUV"); Console.WriteLine("Ha...
2024-01-10C ++程序通过线性探测实现哈希表
哈希表是一种数据结构,用于存储键值对。哈希表使用哈希函数来计算要插入或搜索元素的数组的索引。线性探测是开放地址哈希表中的冲突解决技术。在这种方法中,哈希表的每个单元格都存储一个键-值对。如果通过将新键映射到哈希表中已经被另一个键占用的单元格而发生冲突。此方法在表中搜...
2024-01-10C ++程序通过二次探测实现哈希表
哈希表是一种数据结构,用于存储键值对。哈希表使用哈希函数来计算要插入或搜索元素的数组的索引。二次探测是开放地址哈希表中的冲突解决技术。它通过获取原始哈希索引并添加任意二次多项式的连续值直到找到一个空位来进行操作。这是一个使用二次探测实现哈希表的C ++程序。算法对于搜索...
2024-01-10C ++程序使用双重哈希实现哈希表
哈希表是一种数据结构,用于存储键值对。哈希表使用哈希函数来计算要插入或搜索元素的数组的索引。双重哈希是开放地址哈希表中的冲突解决技术。双散列使用在发生冲突时使用第二个散列函数进行键输入的思想。这是一个使用双重哈希实现哈希表链接的C ++程序。算法对于搜索键:Begin Declare...
2024-01-10