栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

哈希表基础知识

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

哈希表基础知识

1.哈希表的概念

哈希表直白来讲就是一张数组,哈希表中关键码就是数组的索引下标,然后通过下标访问数组中的元素。

2.哈希表用途

用来判断一个元素是否出现在集合里。

3.哈希函数

把关键字映射为哈希表上的索引的函数就是哈希函数,一般hashCode是通过特定编码方式,可以将其他数据格式转化为不同的数值,如果hashCode得到的数值大于tableSize了会对映射出来的索引数值进行取模操作。

4.哈希碰撞

如果要存储的内容大于哈希表的总长度,会出现哈希碰撞,这样会存在多个关键字映射到同一个索引的情况,解决哈希碰撞有两种方法,拉链法和线性探测法。

(1)拉链法

将发生碰撞的元素存储在链表上,这样可以通过索引找到元素。

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

(2)线性探测法

使用线性探测法要保证表格大小大于数据规模,利用哈希表的空位解决碰撞问题,例如冲突的位置放了元素1,那么就向下找一个空位放置元素2,所以要求表格大小一定要大于数据规模 ,要不然哈希表上就没有空置的位置来存放 冲突的数据了。

5.常见的三种哈希结构:数组、集合、映射

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/704076.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号