-1
我一直在從頭開始實施散列映射,這對我來說是曙光。如何確定是覆蓋一個值還是使用碰撞策略? (Java HashMaps)
可以說我有3個不同的鍵和3個值
Keys -> Value: A -> 1, B -> 2,C -> 3
和它們在陣列中的一個開放的時隙中的每個的土地。
如果第四個關鍵d產生相同的散列索引與先前3鍵我可以使用任何碰撞的策略來處理這種情況的一個(線性探測,老調重彈等)
但是可以說,我想以覆蓋[關鍵A,值1]與[關鍵A,99]。這是一個碰撞,但是Java.Util.HashMap知道你想覆蓋這個值。
如果發生碰撞,您如何確定是否覆蓋值或搜索打開位置?
我不明白。如果發生衝突,這隻意味着您的bucketing/hash函數的結果對於兩個密鑰是相同的。它沒有說明這兩個鍵是否相等。這就是你應該檢查的。 –
碰撞是指兩個鍵映射到相同的存儲位置。覆蓋一個值就是當你想更新一個特定鍵的值時。 –
更新密鑰是哈希數據結構的接口的一部分。碰撞處理是實施的一部分。 –