请问老师hashmap的扩容问题

来源:1-1 JDK、JRE、JVM有什么区别

咖啡灌不醉

2020-05-18 17:20:19

我知道了hashmap在数组长度大于64且链表长度大于8的时候会转成红黑树,但是我产生了其他问题。这个红黑树是指数组和链表两个数据结构都会转成红黑树吗?如果链表小于8且数组长度小于64,扩容是增长数组的长度再rehash吗?另外如果只有链表大于8或数组大于64的情况应该怎么做呢

写回答

1回答

好帮手慕阿莹

2020-05-18

同学你好,

1、链表会转成红黑树

2、是的.

3、数据少量存入的时候优先还是链表,当链表长度大于8,且数组长度大于64的时候,链表就会转化成红黑树,所以你会看到Java8的HashMap的数据存储是链表+红黑树的组合,

如果数组长度小于64,链表长度大于8时,会再次扩容,

如果只有数组长度大于64,则对应下边的链表大于8的转换为红黑树,小于8的依然是链表。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

0

0 学习 · 8263 问题

查看课程