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

转载自: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函数建立的一种查找表。

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • MySQL/Oracle数据库优化总结(非常全面)「建议收藏」

    MySQL/Oracle数据库优化总结(非常全面)

    2022年4月6日
    170
  • 三角函数公式和图像大全[通俗易懂]

    三角函数公式和图像大全[通俗易懂]初等函数的图形幂函数的图形指数函数的图形对数函数的图形三角函数的图形反三角函数的图形各三角函数值在各象限的符号三角函数的性质反三角函数的性质三角函数公式两角和公式倍角公式三倍角公式半角公式和差化积积化和差诱导公式万能公式其它公式其他非重点三角函数双曲函数公式一…

    2022年9月14日
    0
  • oracle srvctl命令,用srvctl命令配置service

    oracle srvctl命令,用srvctl命令配置service.用srvctl命令配置service除了用DBCA图形方式,还可以使用命令方式配置service,这种方法对于维护远程尤其有用。无论是创建还是维护都是用一个命令srvctl,先看一下srvctl命令和service相关的语法,如下:创建service[oracle@felix1~]$srvctladdservi.用srvctl命令配置service除了用DBCA图形方式,还可以使用…

    2022年9月12日
    0
  • 串口服务器中文使用文档,MOXA 串口服务器中文使用文档.doc

    MOXA串口服务器中文使用文档MOXA串口联网服务器NPORT5130特点-以太网口支持100/10M自适应,串口支持RS-422,RS-485(2w/4w)-低成本、信用卡大小-支持Windows/LinuxCOM串口驱动程序模式-提供包括TCPServer、TCPClient、UDPServer/Client和EthernetModem在内的不同socket操作模式-…

    2022年4月7日
    42
  • 小白教程!!!win10如何安装Windows和Linux双系统??

    小白教程!!!win10如何安装Windows和Linux双系统??最近升级了win10装了一块固态硬盘,决定装一个双系统玩玩,正好公司运维大哥没事干,在他的帮助下,加上上网看了看发现关于win10的双系统双硬盘安装教程大都语焉不详,要么就是从别处复制粘贴的,这里发一个我的安装步骤如下:一:去官网下载Ubuntu系统 地址:https://www.ubuntu.com/download/desktop问题来了,去哪里下载一个linux系统呢?很简单,去官…

    2022年7月24日
    4
  • 51单片机最小系统电路图_51单片机最小系统介绍

    51单片机最小系统电路图_51单片机最小系统介绍单片机最小系统包括单片机,电源电路,晶振电路和复位电路。电源电路:目前主流单片机的电源分为5V和3.3V这两个标准,STC89C51需要5V的供电系统。晶振电路:晶振为11.0592MHz(可以准确得到波特率9600和115200),为单片机系统提供基准时钟信号,电容(C2、C3)的作用是帮助无源晶振起振,并维持振荡信号的稳定。复位电路:为了防止程序跑飞,当芯片工作异常时,可以按下复位键重新启动。复位电路分为高电平复位和低电平复位,89C51是高电平复位。在单片机系统中,系统上电启动的时候复位一.

    2022年8月30日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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