Java HashMap容量初始化是如何实现的?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1584个文字,预计阅读时间需要7分钟。
%E4%BD%BF%E7%94%A8HashMap(int initialCapacity)%E5%AF%B9%E9%9B%86%E5%90%88%E8%BF%9B%E8%A1%8C%E5%88%9D%E5%A7%8B%E5%8C%96%E3%80%82%E9%BB%98%E8%AE%A4%E6%83%85%E5%86%B5%E4%B8%8B%E5%AE%B9%E9%87%8F%E4%B8%BA16%E3%80%82%E5%8F%8C%E9%98%B6%E6%96%B9%E6%B3%95%E5%AE%9E%E7%8E%B0%E5%AF%B9%E8%AF%AD%E5%8F%AF%E8%83%BD%E6%9C%89%E5%A4%A7%E4%BA%8E16%E7%9A%84%E5%AF%B9%E8%AF%AD%E9%95%BF%E5%BA%A6%E3%80%82
HashMap使用HashMap(int initialCapacity)对集合进行初始化。
在默认的情况下,HashMap的容量是16。但是如果用户通过构造函数指定了一个数字作为容量,那么Hash会选择大于该数字的第一个2的幂作为容量。比如如果指定了3,则容量是4;如果指定了7,则容量是8;如果指定了9,则容量是16。
为什么要设置HashMap的初始化容量
在《阿里巴巴Java开发手册》中,有一条开发建议是建议我们设置HashMap的初始化容量。
下面我们通过具体的代码来了解下为什么会这么建议。
本文共计1584个文字,预计阅读时间需要7分钟。
%E4%BD%BF%E7%94%A8HashMap(int initialCapacity)%E5%AF%B9%E9%9B%86%E5%90%88%E8%BF%9B%E8%A1%8C%E5%88%9D%E5%A7%8B%E5%8C%96%E3%80%82%E9%BB%98%E8%AE%A4%E6%83%85%E5%86%B5%E4%B8%8B%E5%AE%B9%E9%87%8F%E4%B8%BA16%E3%80%82%E5%8F%8C%E9%98%B6%E6%96%B9%E6%B3%95%E5%AE%9E%E7%8E%B0%E5%AF%B9%E8%AF%AD%E5%8F%AF%E8%83%BD%E6%9C%89%E5%A4%A7%E4%BA%8E16%E7%9A%84%E5%AF%B9%E8%AF%AD%E9%95%BF%E5%BA%A6%E3%80%82
HashMap使用HashMap(int initialCapacity)对集合进行初始化。
在默认的情况下,HashMap的容量是16。但是如果用户通过构造函数指定了一个数字作为容量,那么Hash会选择大于该数字的第一个2的幂作为容量。比如如果指定了3,则容量是4;如果指定了7,则容量是8;如果指定了9,则容量是16。
为什么要设置HashMap的初始化容量
在《阿里巴巴Java开发手册》中,有一条开发建议是建议我们设置HashMap的初始化容量。
下面我们通过具体的代码来了解下为什么会这么建议。

