首页 > 其他分享 >哈希表的存储形式

哈希表的存储形式

时间:2023-10-14 16:11:24浏览次数:27  
标签:存储 哈希 cherry 形式 键值 数组 通常

键值对在内存中的存储方式取决于具体的数据结构和编程语言。通常,有两种主要的数据结构用于存储键值对:数组(或列表)和哈希表。以下是它们的工作原理:

1.数组(或列表)存储键值对:

如果键值对存储在数组中,通常有两数组,一个用于存储键(通常是整数或字符串),另一个用于存储值(可以是任何数据类型)。
数组使用索引来访问元素。键值对的键和值按照相同的索引存储在两个不同的数组中,这意味着它们的关联是通过相同的索引建立的。
例如,一个包含整数键和字符串值的数组可能如下所示:

keys:   [0, 1, 2, 3, 4]
values: ["apple", "banana", "cherry", "date", "fig"]

在这种情况下,键值对 {2: "cherry"} 存储在数组的索引 2 处,因为键 2 对应的值是 "cherry"。

2.哈希表存储键值对:

哈希表使用哈希函数将键映射到存储桶(buckets)中。
存储桶是一个类似数组的数据结构,每个存储桶可以存储一个或多个键值对。
哈希表中的键值对通常按照哈希值分布到不同的存储桶中,以便在查找时可以快速定位所需的键值对。
例如,一个包含整数键和字符串值的哈希表可能如下所示(这是一个简化的示例):

Bucket 0: {1: "banana", 4: "fig"}
Bucket 1: {2: "cherry"}
Bucket 2: {0: "apple", 3: "date"}

在这种情况下,键值对 {2: "cherry"} 存储在哈希表的存储桶 1 中,因为哈希函数将键 2 映射到存储桶 1。

3.总结

需要注意的是,哈希表通常比数组更高效,因为它允许在接近常量时间内查找键值对,而不受存储顺序的限制。而数组或列表存储方式通常需要线性时间来查找键值对。不同编程语言和库可能对键值对的存储方式有一些差异,但通常都是基于这些基本原理构建的。

标签:存储,哈希,cherry,形式,键值,数组,通常
From: https://www.cnblogs.com/trmbh12/p/17764295.html

相关文章

  • 索引是不是建的越多越好?MySQL索引用的什么数据结构?一棵B+树能存储多少条数据?
    一、索引是不是建的越多越好当然不是。索引会占据磁盘空间索引虽然会提高查询效率,但是会降低更新表的效率。比如每次对表进行增删改操作,MySQL不仅要保存数据,还有保存或者更新对应的索引文件。二、MySQL索引用的什么数据结构MySQL的默认存储引擎是InnoDB,它采用的是B+树结构的索引......
  • VictoriaLogs 要凭什么革了各家日志存储的命
    如果大家对时序指标的存储方案有些了解,那大概率会听过VictoriaMetrics,VictoriaMetrics号称Prometheus的升级版,在性能和成本方面也确实做得很好,如果是夜莺新用户,我都是推荐直接使用VictoriaMetrics来作为存储。前几天Victoria发布了VictoriaLogs,号称比ElasticSearch大幅......
  • python实现ppt内容输出为word形式
    一、只输出文本内容frompptximportPresentationfromdocximportDocumentwordfile=Document()#给定ppt文件所在的路径filepath=r"C:\Users\18703\Desktop\智家经分\智家经分v2.pptx"pptx=Presentation(filepath)#遍历ppt文件的所有幻灯片页forslideinppt......
  • cerbos minio s3 存储试用
    cerbos支持blob存储,以下是关于minios3的集成试用环境准备docker-composeversion:"3"services:minio:image:minio/minioports:-"9000:9000"-"9001:9001"command:server......
  • Android 外置存储卡无法使用FileProvider问题
    解决办法:<?xmlversion="1.0"encoding="utf-8"?><paths><external-files-pathname="my_images"path="."/></paths>修改为<?xmlversion="1.0"encoding="utf-8&......
  • 基于 ACK Fluid 的混合云优化数据访问(四):将第三方存储目录挂载到 Kubernetes,提升效率和
    作者:车漾前文回顾:本系列将介绍如何基于ACKFluid支持和优化混合云的数据访问场景,相关文章请参考:-基于ACKFluid的混合云优化数据访问(一):场景与架构-基于ACKFluid的混合云优化数据访问(二):搭建弹性计算实例与第三方存储的桥梁-基于ACKFluid的混合云优化数据访问(三):加速......
  • Lab3 存储过程与触发器
              实验三存储过程与触发器实验目的:学习SQL语言进行编程的基本方法与技术,能够编写存储过程、触发器解决数据库需要处理的复杂问题。实验内容:1、 设计一个存储过程或者自定义函数,练习存储过程的设计方法。2、 设计触发器,理解触发器的工作原理与设计方法......
  • U盘安装引导kali live 保存修改,持久化空间存储
    注意:注意:下面操作会格式化整个U盘,备份U盘数据注意:下面操作会格式化整个U盘,备份U盘数据注意:下面操作会格式化整个U盘,备份U盘数据说明持久化空间,是用来保存KALI修改后的设置,比如修改中文界面显示等。持久化分区大小:这个是让U盘空闲出多少空间,相当于电脑D盘,而剩下的就是给KAL......
  • nittest单元测试框架—加载测试用例的3种方法以及测试报告存储管理
     项目结构 测试用例importunittestclassLoginTestCase(unittest.TestCase):deftest_login_success(self):self.assertEqual({'code':200,'msg':'登录成功'},self.login('kobe','666'))deftest_......
  • excel 导出 The maximum length of cell contents (text) is 32767 characters Excel
    excel导出Themaximumlengthofcellcontents(text)is32767characters导出excel功能,报错。错误日志提示::Themaximumlengthofcellcontents(text)is32767characters调查后,poi会有单元格最大长度校验超过32767会报错。需求调研:调研发现,excel和csv文件本身存在......