有沒有可能兩個(gè)不相等的對(duì)象有相同的hashcode
????????有可能.在產(chǎn)生hash沖突時(shí),兩個(gè)不相等的對(duì)象就會(huì)有相同的 hashcode 值.當(dāng)hash沖突產(chǎn)生時(shí),一般有以下幾種方式來處理:
1、拉鏈法:每個(gè)哈希表節(jié)點(diǎn)都有一個(gè)next指針,多個(gè)哈希表節(jié)點(diǎn)可以用next指針構(gòu)成一個(gè)單向鏈表,被分配到同一個(gè)索引上的多個(gè)節(jié)點(diǎn)可以用這個(gè)單向鏈表進(jìn)行存儲(chǔ).
2、開放定址法:一旦發(fā)生了沖突,就去尋找下一個(gè)空的散列地址,只要散列表足夠大,空的散列地址總能找到,并將記錄存入.
3、再哈希:又叫雙哈希法,有多個(gè)不同的Hash函數(shù).當(dāng)發(fā)生沖突時(shí),使用第二個(gè),第三個(gè)….等哈希函數(shù)計(jì)算地址,直到無沖突.