java - Java 使用什么来确定键是否在 Map 中重复?

标签 java map

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

最佳答案

Map 接口(interface)指定如果两个键是 null 它们是重复的,否则如果有一个键 k 这样 key .equals(k),那么就有重复了。在此处查看 contains 或 get 方法:

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

但是,如何执行该检查取决于 Map 实现,而 HashMap 将使用哈希码来缩小将要检查的潜在键的范围equals 方法。所以在实践中,对于一个典型的基于散列的映射,为了检查重复项,映射将采用散列码(可能修改一些大小),并使用 equals 与散列码相同大小的任何键进行比较相同的余数。

关于java - Java 使用什么来确定键是否在 Map 中重复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/364794/

相关文章:

java - 如何在java中实现轮胎 map ?

java - 如何排除要 checkin PMD maven pom.xml 文件的文件?

java - 我应该如何提供压缩网页?

java - 使用 Ehcache 的 WebApp session 管理

xml - 如何使用 Groovy 的 MarkupBuilder 呈现列表

scala - Scala Group通过保留插入顺序?

hadoop - 有什么办法可以控制输入减少 map 减少

Java 线程和同步列表

java - 如何下载我在 Apache TomCat 服务器上动态创建的文件?

map - couchdb 中 map/reduce 结果中的 null 键