gpt4 book ai didi

java - HashMap 如何处理具有相同哈希码的两个对象

转载 作者:行者123 更新时间:2023-11-29 03:24:15 25 4
gpt4 key购买 nike

如果object1object2是两种不同类型的对象,但实现相同的接口(interface) I ,我们假设 object1object2具有相同的哈希码。

有一个HashMap<I, String> .

所以我们可以调用put(object1, "some string")put(object2, "some string")通过该 HashMap 。

我的理解是:

  1. 对于 put()函数,对象在 HashMap 中的位置取决于在键对象的哈希码上。 object1之后放入先映射,然后我们尝试放置 object2 .它会发现位置有被object1占用已经。所以 object2将被放入 object1的下一个职位。
  2. 对于 get()函数,如果我们调用 get(object2) , 它会找到 object1首先,找到object1 != object2 ,那么它会继续比较object1 的下一个元素,直到找到与 object2 相同的对象

只是想知道我是否正确?或此机制内的任何补充信息。

最佳答案

这将被视为哈希冲突。哈希实现很可能会找到相同的桶,然后遍历每个条目,直到 equals() 为键返回 true。所有合理的散列实现都必须考虑冲突的可能性,但这些会降低散列性能。

关于java - HashMap 如何处理具有相同哈希码的两个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21900390/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com