当前位置: 首页 > news >正文

哈希表HashTable

散列表Hash table,也叫哈希表),是根据键(Key)而直接访问在内存存储位置的数据结构。

哈希表中关键码就是数组的索引下标,然后通过下标直接访问数组中的元素,复杂度O(1)

哈希表本质上是个数组,实现哈希表我们可以采用两种方法:

1、数组+链表

2、数组+二叉树

哈希函数

类似一个函数似的,给你一个值,经过某些加工得到另外一个值,就像这里的给你个人名,经过些许加工我们拿到首字母,那么这个函数或者是这个方法在哈希表中就叫做散列函数,其中规定的一些操作就叫做函数法则 

键值对,在jdk中就叫Entry

拉链法

刚刚小李和小王在索引1的位置发生了冲突,发生冲突的元素都被存储在链表中。 这样我们就可以通过索引找到小李和小王了

其实拉链法就是要选择适当的哈希表的大小,这样既不会因为数组空值而浪费大量内存,也不会因为链表太长而在查找上浪费太多时间。 

线性探测法

使用线性探测法,一定要保证tableSize大于dataSize。 我们需要依靠哈希表中的空位来解决碰撞问题。

例如冲突的位置,放了小李,那么就向下找一个空位放置小王的信息。

 

http://www.lryc.cn/news/237879.html

相关文章:

  • 【软件测试】一位优秀测试工程师具备哪些知识和经验?
  • MongoDB相关基础操作(库、集合、文档)
  • 进程和线程( Process and Thread)
  • linux apache安装及虚拟主机配置
  • 基于Spring Boot 框架的试卷自动生成系统的设计与实现
  • 开发《猫咪攻略》小游戏的意义
  • hadoop、hive、DBeaver的环境搭建及使用
  • Linux上通过SSL/TLS和start tls连接到LDAP服务器(附C++代码实现认证流程)
  • HarmonyOS ArkTS List组件和Grid组件的使用(五)
  • 考研思想政治理论大纲
  • 日期格式转化成星期几部署到linux显示英文
  • 一个关于proto 文件的经验分享 :gRPC 跨语言双端通信显示错误码:12 UNIMPLEMENTED (附赠gRPC错误码表)
  • 腾讯极光盒子A4021增强版_线刷官方
  • 机器学习第11天:降维
  • 异步爬取+多线程+redis构建一个运转丝滑且免费http-ip代理池 (三)
  • VSCode新建Vue项目
  • 前端学习--React(1)
  • HarmonyOS从基础到实战-高性能华为在线答题元服务
  • OpenCV快速入门:窗口交互
  • 数据智能引擎:企业模糊搜索API精准获取企业列表信息
  • 汇编-间接寻址(处理数组)
  • lombok 的使用讲解
  • echarts的使用
  • js进阶笔记之构造函数
  • Codesys数据类型(2.7):扩展数据类型之 别名 详解
  • 白盒子测试总结
  • 字符数组基础知识
  • Oracle EBS 重新打开库存会期间
  • java项目之社区互助平台(ssm+vue)
  • unity C#设置文件为不可见