HashMap的扩容机制是怎样的?

  1. 什么条件下扩容?
  • HashMap中最主要的数据结构是数组,一般情况下HashMap的元素是方数组上的。如果数组已经有元素,那么就发生了Hash 冲突,那么就会使用链表或红黑树的结构进行存储。
  • 当然HashMap 中数组的默认大小是16,如果不断的插入元素,那么Hash冲突就会很频繁,所以这个时候就需要扩容!
  • HashMap 中有一个loadFactor参数,这个是当插入数组的元素数量达到了数组的比例之后,HashMap就要开始把数组进行扩容,扩成原来的2倍。
  • loadFactor默认值0.75,例如:数组长度是16,如果数组上已经有12个元素(16*0.75〉时,这个时候就需要进行扩容
  1. 扩容会发生什么?
  • 当然扩容后原有的元素也需要进行重新散列,因为数组长度变长了,元素在数组上的位置也可能发生变化。
posted @ 2022-02-24 17:58  摘星丶仙  阅读(111)  评论(0)    收藏  举报