??如果兩個不同對象的hashCode相同宏粤,這種現(xiàn)象稱為hash沖突。有以下的方式可以解決哈希沖突:
- 開放定址法:
開放定址法就是一旦發(fā)生了沖突,就去尋找下一個空的散列地址舍扰,只要散列表足夠大,空的散列地址總能找到侣诵,并將記錄存入痢法。 - 鏈地址法:
將哈希表的每個單元作為鏈表的頭結(jié)點,所有哈希地址為i的元素構(gòu)成一個同義詞鏈表杜顺。即發(fā)生沖突時就把該關(guān)鍵字鏈在以該單元為頭結(jié)點的鏈表的尾部财搁。 - 再哈希法:
當(dāng)哈希地址發(fā)生沖突用其他的函數(shù)計算另一個哈希函數(shù)地址,直到?jīng)_突不再產(chǎn)生為止躬络。 - 建立公共溢出區(qū):
將哈希表分為基本表和溢出表兩部分尖奔,發(fā)生沖突的元素都放入溢出表中。