哈希表基础知识

1.哈希表的概念

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

2.哈希表用途

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

3.哈希函数

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

4.哈希碰撞

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

(1)拉链法

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

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

(2)线性探测法

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值