集合对象容量初始值设置

Posted mrhgw

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了集合对象容量初始值设置相关的知识,希望对你有一定的参考价值。

ArrayList:
-------------------------------------
明确知道容量:直接设置初始容量,如new ArrayList<>(100)
无法确定容量:预估一个比较接近的值,如果实在不确定,则无需指定初始值 (有默认值)


HashMap
-------------------------------------
HashMap的默认加载因子为0.75,但可以使用构造器指定,如new HashMap<>(100, 1),此时指定加载因子为1
故计算HashMap的初始值时的工式为:(int) (realSize / loadFactor) + 1
如果实际容量为100,加载因子为默认(0.75),计算容量为:(int) (100 / 0.75) + 1 = 134,则实例化HashMap为 new HashMap<>(134)
如果实际容量为100,加载因子1,则计算工式为:(int) (100 / 0.75) + 1 = 101,则则实例化HashMap为 new HashMap<>(101, 1)


HashSet
-------------------------------------
同HashSet

以上是关于集合对象容量初始值设置的主要内容,如果未能解决你的问题,请参考以下文章

HashMap初始容量如何设置

Java中HashMap的初始容量设置

应如何设置HashMap容量的初始值?

应如何设置HashMap容量的初始值?

Java 集合框架—— ArrayList

为什么阿里巴巴建议集合初始化时,指定集合容量大小?