请问老师hashmap的扩容问题
来源:1-1 JDK、JRE、JVM有什么区别
咖啡灌不醉
2020-05-18 17:20:19
我知道了hashmap在数组长度大于64且链表长度大于8的时候会转成红黑树,但是我产生了其他问题。这个红黑树是指数组和链表两个数据结构都会转成红黑树吗?如果链表小于8且数组长度小于64,扩容是增长数组的长度再rehash吗?另外如果只有链表大于8或数组大于64的情况应该怎么做呢
1回答
同学你好,
1、链表会转成红黑树
2、是的.
3、数据少量存入的时候优先还是链表,当链表长度大于8,且数组长度大于64的时候,链表就会转化成红黑树,所以你会看到Java8的HashMap的数据存储是链表+红黑树的组合,
如果数组长度小于64,链表长度大于8时,会再次扩容,
如果只有数组长度大于64,则对应下边的链表大于8的转换为红黑树,小于8的依然是链表。
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
相似问题