我一直在从头开始实现一个hashmap,这让我明白了。
假设我有3个不同的键和3个值
Keys -> Value: A -> 1, B -> 2,C -> 3
并且他们每个都落在阵列中的一个开放的插槽中。
如果第四个键D产生与之前3个键之一相同的哈希索引,我可以使用任何冲突策略来处理这种情况(线性探测,重新散列等)
但是,我想用 [键A,99] 覆盖 [键A,值1] 。这是一个碰撞,但是Java.Util.HashMap知道你要覆盖这个值。
如果发生碰撞,您如何确定是否覆盖某个值或搜索未结地点?
答案 0 :(得分:-2)
这是我的答案 将密钥存储在哈希集中 如果发生碰撞,请检查该键是否在该集合中 如果是替换值。如果不使用碰撞策略