HashMap为什么默认大小是16

231 阅读1分钟

这就是一个考量大小与性能之后的经验值。

为什么

使用移位替代了取余操作,增强性能,但同时带来了一个限制,容器大小必须是2的n次方才能满足移位取余操作。

如果初始大小设置到8或者以下,那么在写入6条数据就需要发生扩容了,一般页面显示都为10条数据,也就是一定会扩容,所以大小为16可以避免发生一次扩容。

当然以上是个人看法。

参考资料

全网把Map中的hash()分析的最透彻的文章,别无二家。-HollisChuang's Blog

为啥HashMap的默认容量是16? - HollisChuang - 博客园 (cnblogs.com)

HashMap难吗? 看完这篇so easy! - 掘金 (juejin.cn)