HashMap的扩容机制是怎样的?

  1. 什么条件下扩容?
  • HashMap中最主要的数据结构是数组,一般情况下HashMap的元素是方数组上的。如果数组已经有元素,那么就发生了Hash 冲突,那么就会使用链表或红黑树的结构进行存储。
  • 当然HashMap 中数组的默认大小是16,如果不断的插入元素,那么Hash冲突就会很频繁,所以这个时候就需要扩容!
  • HashMap 中有一个loadFactor参数,这个是当插入数组的元素数量达到了数组的比例之后,HashMap就要开始把数组进行扩容,扩成原来的2倍。
  • loadFactor默认值0.75,例如:数组长度是16,如果数组上已经有12个元素(16*0.75〉时,这个时候就需要进行扩容
  1. 扩容会发生什么?
  • 当然扩容后原有的元素也需要进行重新散列,因为数组长度变长了,元素在数组上的位置也可能发生变化。
posted @   摘星丶仙  阅读(109)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示