map默认读取大小

map默认读取大小,第1张

HashMap的默认大小是16个元素(必须是2的幂)。

HashMap基于哈希表的Map接口的实现。此实现提供所有可选的映射 *** 作,并允许使用null值和null键。(除了非同步和允许使用null之外,HashMap类与Hashtable大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。此实现假定哈希函数将元素适当地分布在各桶之间,可为基本 *** 作(get和put)提供稳定的性能。迭代collection视图所需的时间与HashMap实例的“容量”(桶的数量)及其大小(键-值映射关系数)成比例。所以,如果迭代性能很重要,则不要将初始容量设置得太高(或将加载因子设置得太低)。

Map<String, Double> hashMap = new HashMap<>(20)

为什么要设置初始容量:

设置初始容量是为了提高性能,因为当"键值对数量" >0.75 × initialCapacity会进行扩容,每次扩容都要重建hash表,是非常影响性能;初始容量设置过大,又会浪费内存,所以非常有必要设置一个合适的初始容量。

初始容量设置公式:键值对数量/0.75+1

为什么要加1呢?

假如现在需要在map中放入6个键值对,按照公式计算6 / 0.75等于8,那初始容量是不是就得设置成8。肯定不是,如果设置成8,当map中键值对数量达到6个时候,就会进行扩容,所以应当设置成8+1=9才合适。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11171407.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存