关于几个概念的问题

来源:10-4 HashMap

autumn_luo

2020-03-06

1.HashMap初始容量是16个,这个初始容量是不是指的是初始的时候就有16个桶,这16个桶组成一个数组,那么数组长度是不是应该是16,而后面在讲树华条件判定的时候,又说了一个最小树化容量是64,并且也有人把最小树化容量称为数组长度,这里有点混淆。导致树化和扩容的判定条件就不清楚了

2.这个HashMap的结构我是这么理解的,一个HashMap有16个桶(相当于一个数组),添加根据Hash值找的不同桶,Hash值相同的放在一个桶里,而树化是发生在单个桶里的,如果这样,是不是存在这样一个现象,有的桶是链表,有的桶是红黑树的结构?

写回答

1回答

翔仔

2020-03-07

同学好,1.感觉你弄混淆了相关概念,bucket数量默认是16,最小树化容量指的是你hashmap的size值,也就是所有桶里面的元素加和,如果超过64,则满足最小的树化条件,单桶则是你要超过8个的时候,并且总体超过64就会开始树化,否则会扩容

2.是的,确实是这样,有的是链表,有的是树化结构。

其实直接看源码就了解啦

0
6
翔仔
回复
YogurtJ
确实是这样的,感谢同学的热心回复,最近几门课程叠加问题太多,外加需要熬夜录制赶课,面试课程希望同学能够多多帮忙一起答疑,感激不尽:)
2020-03-09
共6条回复

剑指Java面试-Offer直通车 百度资深面试官授课

招聘季即将到来,让百度资深面试官来为你的高薪Offer保驾护航

8427 学习 · 1870 问题

查看课程