如何确定是覆盖值还是使用碰撞策略? (Java HashMaps)

时间:2017-02-13 03:11:03

标签: java hashmap hashset hash-collision

我一直在从头开始实现一个hashmap,这让我明白了。

假设我有3个不同的键和3个值

      Keys -> Value:  A -> 1, B -> 2,C -> 3

并且他们每个都落在阵列中的一个开放的插槽中。

如果第四个键D产生与之前3个键之一相同的哈希索引,我可以使用任何冲突策略来处理这种情况(线性探测,重新散列等)

但是,我想用 [键A,99] 覆盖 [键A,值1] 。这是一个碰撞,但是Java.Util.HashMap知道你要覆盖这个值。

如果发生碰撞,您如何确定是否覆盖某个值或搜索未结地点?

1 个答案:

答案 0 :(得分:-2)

这是我的答案 将密钥存储在哈希集中 如果发生碰撞,请检查该键是否在该集合中 如果是替换值。如果不使用碰撞策略