面试题答案
一键面试- 设置初始容量:
- 可以设置初始容量为16384。
- 原因:
- 在Java的
HashMap
中,其容量必须是2的幂次方。当HashMap
中的元素数量达到容量的负载因子(默认是0.75)时,就会进行扩容。 - 我们预估有10000个元素,设初始容量为
n
,根据负载因子的计算规则,n * 0.75 >= 10000
,即n >= 10000 / 0.75 ≈ 13333.33
。 - 比13333.33大的最小的2的幂次方数是16384(因为
2^14 = 16384
)。这样设置初始容量,可以在元素数量达到10000时,尽量避免因为扩容而带来的重新计算哈希值、重新分配内存等性能损耗。在大数据量场景下,扩容操作往往代价较高,合理设置初始容量可以提升HashMap
的性能。
- 在Java的