Java-哈希表

2022/4/4 11:19:02

本文主要是介绍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-哈希表的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程