HashMap初始化有几种常见的方式,下面我就重点详解4种常见的HashMap初始化方式。
1.使用默认构造函数初始化
HashMap提供了一个无参构造函数,可以创建一个初始容量为16的HashMap对象。
如下所示:
HashMap<String, Integer> hashMap = new HashMap<>();
HashMap默认的初始容量大小是16,如下所示:
//HashMap默认的初始容量大小--16,容量必须是2的幂 static final int DEFAULT_INITIAL_CAPACITY = 1 << 4;
如果不指定初始容量,那么HashMap会默认使用这个初始容量。
2.指定初始容量初始化
可以使用带有初始容量参数的构造函数,指定HashMap的初始容量。
如下所示:
HashMap<String, Integer> hashMap = new HashMap<>(20);
这个容量可以是任何整数,但最好根据实际需求来选择一个合适的值。
3.指定初始容量和负载因子初始化
可以使用带有初始容量和负载因子参数的构造函数来创建一个HashMap对象。
如下所示:
HashMap<String, Integer> hashMap = new HashMap<>(20, 0.8f);
HashMap中的负载因子(load factor)是用来控制HashMap在什么时候需要扩容的一个参数,其默认值为0.75,这里我初始化为0.8。
4.使用静态初始化器初始化
还可以使用静态初始化器(静态代码块)来初始化HashMap对象。
如下所示:
HashMap<String, Integer> hashMap = new HashMap<String, Integer>(){{ put("a", 1); put("b", 2); put("c", 3); }};
这种方式比较灵活,可以根据实际需求灵活添加键值对。
以上就是常见的4种HashMap初始化方式,更多HashMap,可以查看:HashMap底层实现原理(图文超详解)
陈睿mikechen
10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。
关注「mikechen」公众号,获取更多技术干货!
后台回复【面试】即可获取《史上最全阿里Java面试题总结》,后台回复【架构】,即可获取《阿里架构师进阶专题全部合集》