当前位置:  开发笔记 > 编程语言 > 正文

Java中的默认HashMap探测

如何解决《Java中的默认HashMap探测》经验,为你挑选了1个好方法。

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



1> dfrankow..:

看起来像链接我.代码:( 链接)

...
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处的条目,然后将其替换为一个新条目,该条目的"下一个"字段已经是那里的条目(即链接它).


HashMap和ConcurrentHashMap使用链.IdentityHashMap和ThreadLocal的实现使用线性探测.其他JDK实现可以使用不同的算法.
推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有