【Java学习】哈希碰撞之简单理解
①假如要取16位,也就是0-15;
②那么,假设:
k1=1010 1001
k2=1100 1001
③只取16位的话,也就是最后四个,k1和k2都是 1001,是相等的;
④此时,如果要存到哈希表里,会发生哈希碰撞;
⑤为了避免哈希碰撞,所以采取了左移右移的一系列复杂操作;
⑥假设:右移4位;
k1=0000 1010
k2=0000 1100
⑦此时,k1≠k2,所以放到数组时,就不会发生碰撞了。
①假如要取16位,也就是0-15;
②那么,假设:
k1=1010 1001
k2=1100 1001
③只取16位的话,也就是最后四个,k1和k2都是 1001,是相等的;
④此时,如果要存到哈希表里,会发生哈希碰撞;
⑤为了避免哈希碰撞,所以采取了左移右移的一系列复杂操作;
⑥假设:右移4位;
k1=0000 1010
k2=0000 1100
⑦此时,k1≠k2,所以放到数组时,就不会发生碰撞了。