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-哈希表的主要内容,如果未能解决你的问题,请参考以下文章

java数据结构----哈希表

Java集合哈希表及哈希函数的实现方式

哈希表Java中HashMap

算法哈希表的诞生(Java)

Java 数据结构 & 算法宁可累死自己, 也要卷死别人 9 哈希表原理

Java 数据结构 & 算法宁可累死自己, 也要卷死别人 9 哈希表原理