首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >HashMap中 load factor的意义是什么?

HashMap中 load factor的意义是什么?
EN

Stack Overflow用户
提问于 2018-01-05 01:04:43
回答 2查看 0关注 0票数 0

HashMap有两个重要的属性:大小 load factor。我浏览了Java文档,它说0.75f是最初的 load factor。但是我找不到它的实际用途。有人可以描述什么是我们需要设置 load factor的不同场景,我该如何理解?

EN

回答 2

Stack Overflow用户

发布于 2018-01-05 09:11:48

文档它相当不错解释了你的问题:

HashMap的一个实例有两个影响其性能的参数:初始容量和负载因子。容量是哈希表中桶的数量,初始容量就是哈希表创建时的容量。加载因子是散列表在其容量自动增加之前被允许得到的度量。当哈希表中的条目数量超过了负载因子和当前容量的乘积时,散列表被重新映射(也就是内部数据结构被重建),使得散列表的数量大约是存储桶数量的两倍。 一般来说,默认加载因子(.75)提供了时间和空间成本之间的良好折衷。较高的值会减少空间开销,但会增加查找开销(反映在大部分HashMap类的操作中,包括get和put)。在设置初始容量时,应该考虑映射中的条目数目及其负载因子,以尽量减少重新操作的次数。如果初始容量大于最大入口数除以负载因子,则不会发生重新刷新操作。

与所有的性能优化一样,可以避免过早优化

票数 0
EN

Stack Overflow用户

发布于 2018-01-05 10:13:10

take的默认初始容量HashMap为16,加载因子为0.75f(即当前地图大小的75%)。负载系数代表HashMap容量应该增加一倍的水平。

例如容量和负载系数的乘积16 * 0.75 = 12。这表示在存储第12个键值对后HashMap,其容量变为32。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100005195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档