面试官:如果确定HashMap中只装载500个元素,你会怎么初始化HashMap呢?
显然,这是一个关于合理设置集合类初始容量提高程序运行效率的题。对于HashMap,要尽可能减少耗时的扩容resize()方法次数。
已经确定要装载500个元素了,参考《阿里巴巴Java开发手册》:
【推荐】集合初始化时,指定集合初始值大小。
initialCapacity = (需要存储的元素个数 / 负载因子) + 1。
负载因子(即loader factor)默认为 0.75,如果暂时无法确定初始值大小,请设置为16。
由公式,计算出初始化容量为667。