Java 使用什么来确定键是否为映射中的重复项?

2022-09-04 07:56:00

我的第一个直觉是说每个键都是一个对象,并且有一个哈希代码,用于确定是否插入了重复项。但是,我找不到任何东西可以肯定地支持这一点。有人可以提供一个链接来说明这一点,或者在这里提供真正的答案吗?谢谢!


答案 1

该接口指定,如果两个键是重复的,否则如果有这样的键,则存在重复项。请参阅此处的包含或获取方法:Mapnullkkey.equals(k)

http://java.sun.com/javase/6/docs/api/java/util/Map.html#containsKey(java.lang.Object)

但是,这取决于如何执行该检查的实现,并且将使用哈希代码来缩小它将使用该方法检查的潜在键的范围。因此,在实践中,对于典型的基于哈希的映射,要检查重复项,映射将采用哈希码(可能修改一些大小),并用于与哈希码mod相同大小给出相同余数的任何键进行比较。MapHashMapequalsequals


答案 2

读错了问题,但上面的那个人的答案是正确的,我的链接提供了关于如何确定它的答案(等于方法)。查看链接中的包含和获取方法。

地图的插入方式:地图中不能有重复的键。如果找到重复的键,它将用新值替换旧值。下面是指向地图界面的链接。此外,如果您查看 put(K 键,V 值)方法,它还解释了映射的工作原理。希望有所帮助。


推荐