哈希表的数据结构[通俗易懂]

转载自:https://www.jianshu.com/p/b468abd86f61Hash表的结构图:数组+链表哈希表(Hashtable,也叫散列表),是根据键(Key)而直接访问在内存存储位置的数据结构。也就是说,它通过计算一个关于键值的函数,将所需查询的数据映射到表中一个位置来访问记录,这加快了查找速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表白话一点的说就是通过把Key通过一个固定的算法函数(hash函数)转换成一个整型数字,然后就对该数字对数组的长度进行取余,取余结果就

大家好,又见面了,我是你们的朋友全栈君。

转载自:https://www.jianshu.com/p/b468abd86f61

Hash表的结构图:

在这里插入图片描述

数组 + 链表

哈希表(Hash table,也叫散列表),是根据键(Key)而直接访问在内存存储位置的数据结构。也就是说,它通过计算一个关于键值的函数,将所需查询的数据映射到表中一个位置来访问记录,这加快了查找速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表

白话一点的说就是通过把Key通过一个固定的算法函数(hash函数)转换成一个整型数字,然后就对该数字对数组的长度进行取余,取余结果就当作数组的下标,将value存储在以该数字为下标的数组空间里。

当使用hash表查询时,就是使用hash函数将key转换成对应的数组下标,并定位到该下标的数组空间里获取value,这样就充分利用到数组的定位性能进行数据定位。

先了解一下下面几个常说的几个关键字是什么:

  • key:我们输入待查找的值
  • value:我们想要获取的内容
  • hash值:key通过hash函数算出的值(对数组长度取模,便可得到数组下标)
  • hash函数(散列函数):存在一种函数F,根据这个函数和查找关键字key,可以直接确定查找值所在位置,而不需要一个个遍历比较。这样就预先知道key在的位置,直接找到数据,提升效率。
  • 地址index=F(key)

hash函数就是根据key计算出该存储地址的位置,hash表就是基于hash函数建立的一种查找表。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/127425.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Git创建远程分支并提交代码到远程分支[通俗易懂]

    Git创建远程分支并提交代码到远程分支[通俗易懂]1、可以通过gitbranch-r命令查看远端库的分支情况如图所示,远程仓库只有一个master分支2、从已有的分支创建新的分支(如从master分支),创建一个dev分支但此时并没有在远程仓库上创建分支如图所示还是只有一个master分支3、建立本地到远端仓库的链接–这样代码才能提交上去使用命令行gitpush–set-…

  • vue集成百度UEditor富文本编辑器

    vue集成百度UEditor富文本编辑器

    2021年10月11日
  • client profile_clienttop

    client profile_clienttopscreenX:鼠标在显示屏幕上的坐标。clientX:鼠标在页面显示区域的坐标。注:以上两个都是各浏览器通用的。pageX:FF特有,鼠标在页面上的位置,从页面左上角开始定位,这个可以很方便在整个页面上进行定位,IE没有直接替换的属性。layerX:FF特有,鼠标相对于“触发事件的元素的层级关系中离该元素最近的,设置了position的父元素”的边界的位置,从border的左…

    2022年10月29日
  • 使用offerShow小程序查询程序员薪水

    使用offerShow小程序查询程序员薪水鱼皮和小强两位大佬推荐的查询程序员薪水的神器——offerShow小程序。输入想要查询的公司名+岗位名/城市名,就可以查询到我们想要了解的薪资了。信息来源都是匿名分享,真实可信。例如:

  • 解决WinHTTP Web Proxy Auto-Discovery Service无法启动问题

    解决WinHTTP Web Proxy Auto-Discovery Service无法启动问题需要启动该服务的起因是需要抓包,所以下载了charles,但无任何抓包信息,也没有错误提示,未查到原因。遂又下载了fiddler,此时启动会提示“FailedtoregisterFiddlersasthesystemproxy”,上网查原因是WinHTTPWebProxyAuto-DiscoveryService该服务没有启动,到服务中查询确实如此。解决方案(此为对我生效的解决方案,关联服务未启动等其他问题导致也是有可能的):win+Rregedit打开注册表,找到\HK

  • FusionChartsFree用法简介

    FusionChartsFree用法简介最近在公司做报表,学习了一些FusionChartsFree用法。具体FusionChartsFree是什么东东,自己到google里找答案。首先来做一个柱型图:/**  *统计一周内的销售金额,在action中构造显示图形的字符串  */ publicStringgetDateList(Stringcaption,StringsubCaption,StringxAx…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号