java – 哈希桶的数量
在
HashMap文档中,提到:
>初始容量只是创建哈希表时的容量 现在假设我们的初始容量为16(默认值),如果我们继续添加100个元素,则hashmap的容量为100 * loadfactor. 散列桶的数量是100还是16? 编辑: 解决方法
既不是100也不是16桶.最有可能会有256个存储桶,但文档无法保证这一点.
从updated documentation link:
(强调我的) 因此,如果我们忽略上面的“大约”一词,我们确定每当哈希表变为75%满(或者在构造函数中指定的任何加载因子)时,哈希桶的数量加倍.这意味着每当插入第12,24,48和96个元素时,桶的数量就会翻倍,总共会有256个桶. 但是,正如我在文档片段中强调的那样,这个数字大约是之前大小的两倍,所以它可能不是256.事实上,如果倒数第二次加倍被稍微大一点的加倍所取代,那么最后的加倍可能是永远不会发生,所以最终的哈希表可能只有134个桶,或者可能大于256个元素. 注:我到达了134号,因为它是最小的整数N,使得0.75 * N> 0. 100. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |