gpt4 book ai didi

java - 不同哈希码的结果,但两个 java 对象相同

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

我知道我们应该有相同的 hashcodes incase equals 对于两个 java 对象是相同的,但只是想了解 hashcodes 是否不同相同但 equals 返回 true,对于 HashMap、HashSet 等集合会有什么后果。

它只会影响性能还是会影响那些集合类的行为/功能。

最佳答案

让我们调用对象 o1o2 其中 o1.equals(o2) 但是 o1.hashCode() != o2 .hashCode()

考虑以下几点:

Map map = new HashMap();
Set set = new HashSet();
map.put(o1, "foo");
set.add(o1);

下面的断言会失败

Assert.assertTrue(map.containsKey(o2));
Assert.assertTrue(set.contains(o2));

关于java - 不同哈希码的结果,但两个 java 对象相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35407099/

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