是否有使用单独链接作为冲突解决方案的 java Map 接口(interface)的实现。通过阅读 HashMap 和 HashTable 的 javadoc,我得出的结论是,实现所做的基本上是替换值,并且基本上不采用任何冲突解决方案?
最佳答案
你弄错了:它为每个桶使用条目的链接列表。
在 map 中放置一个值时, map 首先调用 hashCode
在 key 上,然后转换此哈希码,使其介于 0 和桶数之间。如果桶为空,则 key 存储在这个桶中。如果不是,则将此存储桶中的每个 key 与新 key 进行比较 equals
.如果一个相等,则其值被新值替换。否则,带有新 key 的新条目将添加到存储桶的条目列表中。
如果要为给定键存储多个值,请使用 Map<Key, List<Value>>
, 或者使用 Guava 的 MultiMap .
关于java - 具有单独链接的 HashMap ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8241582/