java调整hashmap的存储桶大小
hashmap的性能取决于负载因子(l)和容量(c)。如果地图中的条目数大于或等于(l*c),则会改变内部数据结构,即增加存储桶的容量或大小。我的问题是,它如何计算hashmap中的条目数来检查所提到的条件?是地图中(键、值)对的总数,还是正在使用的存储桶中参与的位置的数量?如果是桶中参与的位置的数量,你如何跟踪这些位置?我假设是为了避免碰撞而使用链锁
你可以在下面搜索框中键入要查询的问题!
hashmap的性能取决于负载因子(l)和容量(c)。如果地图中的条目数大于或等于(l*c),则会改变内部数据结构,即增加存储桶的容量或大小。我的问题是,它如何计算hashmap中的条目数来检查所提到的条件?是地图中(键、值)对的总数,还是正在使用的存储桶中参与的位置的数量?如果是桶中参与的位置的数量,你如何跟踪这些位置?我假设是为了避免碰撞而使用链锁
# 1 楼答案
load factor
是它所持有的the number of elements
和你的HashMapcapacity
的比率(即你有多少个存储桶)因此,使用一个简单的
array
的10 spaces
和.75
的负载因子意味着当你的元素除以你的大小大于或等于75%
(这意味着你的数组中有8个元素)时,数据结构必须重新生长以降低比率HashMap通常会跟踪它在每个
add/remove
操作中持有的number of elements
,并重新计算load factor