java - Java 中的默认 HashMap 探测

标签 java data-structures hashmap

Java 使用什么作为 HashMap 的默认探测方法?是线性的吗?链接还是其他?

最佳答案

看起来像是对我的链接。代码:(link)

...
724         /**
725          * Create new entry.
726          */
727         Entry(int h, K k, V v, Entry n) {
728             value = v;
729             next = n;
730             key = k;
731             hash = h;
732         }
...

...
795     void addEntry(int hash, K key, V value, int bucketIndex) {
796     Entry e = table[bucketIndex];
797         table[bucketIndex] = new Entry(hash, key, value, e);
...

也就是说,获取 bucketIndex 处的条目,然后将其替换为一个新条目,该条目的“下一个”字段是已经存在的条目(即链接它)。

关于java - Java 中的默认 HashMap 探测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/267414/

相关文章:

java - Eclipse不允许我在尝试验证用户输入时使用else语句

caching - 为什么缓存大小通常定义为素数?

algorithm - 对于这个练习题,使用嵌套哈希表是否有效?

java - JDK 15 中的 Ed25519,从字节数组解析公钥并验证

Java(等于方法)

java - 速度+ Spring

java - 我需要使用 Emploee 类的薪水从农场对象列表创建一个 map

java - Java 中具有自动索引的集合

haskell - 如何在 Haskell 中构建无限网格状数据结构?

java.io.NotSerializableException : java. util.HashMap$值