HashMap初始化详解(4种常见初始化方式)

HashMap初始化详解(4种常见初始化方式)-mikechen

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年+大厂架构经验,BAT资深面试官,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

👇阅读更多mikechen架构文章👇

阿里架构 |双11秒杀 |分布式架构 |负载均衡 |单点登录 |微服务 |云原生 |高并发 |架构师

以上

关注作者「mikechen」公众号,获取更多技术干货!

后台回复架构,即可获取《阿里架构师进阶专题全部合集》,后台回复面试即可获取《史上最全阿里Java面试题总结

评论交流
    说说你的看法