关于几个概念的问题
来源:10-4 HashMap
autumn_luo
2020-03-06
1.HashMap初始容量是16个,这个初始容量是不是指的是初始的时候就有16个桶,这16个桶组成一个数组,那么数组长度是不是应该是16,而后面在讲树华条件判定的时候,又说了一个最小树化容量是64,并且也有人把最小树化容量称为数组长度,这里有点混淆。导致树化和扩容的判定条件就不清楚了
2.这个HashMap的结构我是这么理解的,一个HashMap有16个桶(相当于一个数组),添加根据Hash值找的不同桶,Hash值相同的放在一个桶里,而树化是发生在单个桶里的,如果这样,是不是存在这样一个现象,有的桶是链表,有的桶是红黑树的结构?
写回答
1回答
-
同学好,1.感觉你弄混淆了相关概念,bucket数量默认是16,最小树化容量指的是你hashmap的size值,也就是所有桶里面的元素加和,如果超过64,则满足最小的树化条件,单桶则是你要超过8个的时候,并且总体超过64就会开始树化,否则会扩容
2.是的,确实是这样,有的是链表,有的是树化结构。
其实直接看源码就了解啦
062020-03-09
相似问题