HashMap之扩容机制

 我来答
新科技17
2022-06-21 · TA获得超过5904个赞
知道小有建树答主
回答量:355
采纳率:100%
帮助的人:75万
展开全部

首先要了解HashMap的扩容过程,我们就得了解一些HashMap中的变量:

何时进行扩容?
HashMap使用的是懒加载,构造完HashMap对象后,只要不进行put 方法插入元素之前,HashMap并不会去初始化或者扩容table。

当首次调用put方法时,HashMap会发现table为空然后调用resize方法进行初始化
,当添加完元素后,如果HashMap发现size(元素总数)大于threshold(阈值),则会调用resize方法进行扩容

扩容过程:

因此,table中的元素只有两种情况:
元素hash值第N+1位为0:不需要进行位置调整
元素hash值第N+1位为1:调整至原索引的两倍位置
扩容或初始化完成后,resize方法返回新的table

参考:
Java HashMap的扩容

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
泰科博思
2024-12-27 广告
CASTEP是一款基于第一性原理计算方法的材料模拟软件,其优势包括:1.高精度。CASTEP使用密度泛函理论(DFT)进行第一性原理计算。这种基于波函数的方法不依赖于实验数据,可以获得非常高的准确性。2.广泛适用性。CASTEP适用于多种材... 点击进入详情页
本回答由泰科博思提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式