![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java高级
wangyi1225
这个作者很懒,什么都没留下…
展开
-
谈谈你对HashMap中put/get方法的认识?如果了解再谈谈HashMap的扩容机制?默认大小是多少?什么是加载因子(或填充比)?什么是吞吐临界值(或阈值、threshold)?
jdk7的文字描述(会在中间介绍一些8的改变): 将key1,value1(就是一个键值对Entry)添加到数组中,首先根据key1所在累的hashCode()方法计算key1的哈希值1,然后使用某种算法,得到哈希值2,(个人理解是两次计算哈希值是为了让得到的哈希值相同的概率更小些),哈希值2在使用indexFor() 方法得到底层table数组中存放的位置:index(0<=inde...原创 2019-08-18 16:27:41 · 1047 阅读 · 0 评论 -
面试题:负载因子值的大小,对HashMap有什么影响
负载因子的大小决定了HashMap的数据密度。 负载因子越大密度越大,发生碰撞的几率越高,数组中的链表越容易长,造成查询或插入时的比较次数增多,性能会下降。 负载因子越小,就越容易触发扩容,数据密度也越小,意味着发生碰撞的几率越小,数组中的链表也就越短,查询和插入时比较的次数也越小,性能会更高。但是会浪费一定的内容空间。而且经常扩容也会影响性能,建议初始化预设大一点的空间。 按照其他语言的参考及...原创 2019-08-18 15:29:13 · 3715 阅读 · 0 评论