两个不同的HashMap返回相同的hashCode

问题描述 投票:0回答:1

我有两组不同的 HashMap({u=0, h=3}{t=3, i=0}),并且它返回 相同的 hashCode224)。我不明白这一点,不同对象的hashCode需要不同,这里HashMap包含不同的键和值对集合,但它仍然返回相同的hashCode。 有人可以解释一下这是如何工作的吗?

尝试在java中获取hashmap的hashcode

java hashmap hashcode
1个回答
0
投票

正如评论,您的声明:

不同对象的hashCode需要不同

不正确。

哈希函数接受输入,并返回从输入派生的值。返回值一致。相同的输入总是返回相同的哈希值。

但是,两个输入

可以确实巧合地返回相同的哈希值。这称为碰撞。良好的哈希函数的一个方面是冲突很少且很少。但碰撞总是有可能的。输入是无限的,但哈希值是有限的;所以显然碰撞一定是可能的。

© www.soinside.com 2019 - 2024. All rights reserved.