-
HashMap的默认容量是16
-
默认的加载因子是0.75
-
阈值 = 容量 * 加载因子,因此默认的 = 12,
-
也就是说当元素数量超过阈值(默认为12)的时候就会触发扩容
-
扩容每次都是容量更新为原来的容量 * 2
-
当发生哈希冲突时,会在该哈希值的位置上以头插法插入链表
-
当链表超过8且数组长度(数据总量)超过64才会转为红黑树
-
将链表转换成红黑树前会判断,如果当前数组的长度小于64,那么会选择先进行数组扩容,而不是转换为红黑树,以减少搜索时间。
HashMap的扩容机制(简略版)
于 2022-03-20 11:10:42 首次发布
这篇博客详细介绍了HashMap的默认容量(16)、加载因子(0.75)和阈值(12),当元素数量超过阈值时会触发扩容,扩容时容量翻倍。在哈希冲突时,HashMap使用头插法处理链表。当链表节点数超过8且总元素数超过64时,HashMap会将链表转换为红黑树。在转换前,如果数组长度小于64,会优先选择扩容以优化查找效率。
摘要由CSDN通过智能技术生成