1. 程式人生 > 其它 >Java-雜湊表

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