搜索
写经验 领红包
 > 旅游

hashmap什么时候用(hashmap什么时候需要重写equals)

导语:Java中hashMap 什么时候需要进行扩容?

hashmap什么时候用(hashmap什么时候需要重写equals)

hello,大家伙,我是霖仔,今天给大家分享一下HashMap什么时候需要进行扩容,希望能够帮助到大家

调用场景:

1. 初始化数组 table

2. 当数组 table 的 size 达到阙值时进行扩容

实现过程:通过判断旧数组的容量是否大于 0 来判断数组是否初始化过。

如果小于 0:进行初始化,判断是否调用无参构造器。如果调用了无参构造器: 使用默认的大小和阙值<阈值 12. 阀值=默认大小为 16 乘以负载因子 0.75。如果没有调用无参构造器: 使用构造函数中初始化的容量, 当然这个容量是经过 tableSizefor 计算后的 2 的次幂数) 。 如果大于 0: 进行扩容,扩容成两倍(小于最大值的情况下),之后在进行将元素重新进行与运算复制到新的散列表中。

概括的讲:

扩容需要重新分配一个新数组,新数组是老数组的 2 倍长,然后遍历整个老结构,把所有的元素挨个重新 hash 分配到新结构中去。PS:可见底层数据结构用到了数组,到最后会因为容量问题都需要进行扩容操作

本文内容由小媛整理编辑!