Java-哈希表
Posted atao-BigData
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java-哈希表相关的知识,希望对你有一定的参考价值。
哈希表
1.1哈希表概述:
- 是由哈希表函数和HashTable 组成的,其中哈希函数是可以进行自定义的,hash函数就是根据key计算出应该存储地址的位置,而哈希表是基于哈希函数建立的一种查找表
哈希函数
- 一般情况下哈希函数默认是数据对hashtable 的长度进行取模运算,从而计算出数据存储的位置
哈希碰撞
- 即不同的key值产生了相同的地址,H(key1)=H(key2)
比如我们上面说的存储3 6 9,p取3是
3 MOD 3 == 6 MOD 3 == 9 MOD 3
此时3 6 9都发生了hash冲突
哈希冲突的解决放方案
首先有一个H(key)的哈希函数
如果H(key1)=H(keyi)
那么keyi存储位置H i = ( H ( k e y ) + d i ) M O D m H_i=(H(key)+d_i)MOD mH
i
=(H(key)+d
i
)MODmm为表长
di有三种取法
1.线性探测在散列
2.平方探测再散列
3.随机探测在散列
实际开发中哈希表也是很少单独使用的,一般情况下,会结合链表一起去使用(双链表)
————————————————
版权声明:本文为CSDN博主「洌冰」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u011109881/article/details/80379505
以上是关于Java-哈希表的主要内容,如果未能解决你的问题,请参考以下文章