java - 具有单独链接的 HashMap

标签 java data-structures hashmap hashtable

是否有使用单独链接作为冲突解决方案的 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/

相关文章:

c - 增长动态哈希表

java - 我很困惑。插入排序(基本排序,我知道)算法正在做一些我无法解释的事情

c# - 为什么将 c# 泛型 List 实现为仅追加数组?

algorithm - 在 Kruskal 算法中使用 union-find 是否真的会影响最坏情况下的运行时间?

arrays - 二叉树的高效数组存储

java - Java 中带有 HashMap 的摩尔斯电码翻译器

java - 在 Java 中递归地交换嵌套映射的键和值

java - 在jsp中的EL表达式中将 double 值格式化为两位小数

java - 加工。粒子系统-如何让粒子一颗一颗进来

java - JFormattedTextField 接受不同位数的数字