HashMap 有关知识(浅)

1.何时调用resize()。

2.影响因子为何是0.75。

3.默认数组为何是16。


1.何时调用resize()。

HashMap约等于一个链表和数组的集合,横排表示数组,纵排表示数组元素(也就是一个链表)。这个时候就出现了数组大小这定义。

当hashmap中的元素个数超过  数组大小*loadFactor(影响因子,一般为0.75)  时,就会进行数组扩容,loadFactor的默认值为0.75,也就是说,默认情况下,数组大小为16,那么当hashmap中元素个数超过16*0.75=12的时候,就把数组的大小扩展为2*16=32,即扩大一倍,然后重新计算每个元素在数组中的位置 。hashmap中的元素到达一定级别,为了减轻数组中元素可能的碰撞,提高查询效率,就会执行resize方法。

 

2.影响因子为何是0.75。

为什么影响因子的大小一般为0.75 这是因为3/4与2的n次方相乘永远是整数,所以他的影响因子是0.75

3.默认数组为何是16。

 这个数组的大小有两个容量,一个是Size一个是Capacity。

在HashMap中,有两个比较容易混淆的关键字段:size和capacity ,这其中capacity就是Map的容量,而size我们称之为Map中的元素个数。

简单打个比方你就更容易理解了:HashMap就是一个“桶”,那么容量(capacity)就是这个桶当前最多可以装多少元素,而元素个数(size)表示这个桶已经装了多少元素。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值