HashMap学习笔记
HashMap 简介
![ad67753010eb524f3717dfe1ce2afd70.png](https://i-blog.csdnimg.cn/blog_migrate/06cfe7eeb9856b626b482cbed34b9dda.png)
图1 HashMap 类继承示意图
HashMap 主要用来存放键值对,它基于哈希表的Map接口实现,是常用的Java集合之一,由图1可知,HashMap继承于AbstractMap,实现了Map、Cloneable、Serializable接口。
在JDK1.8 之前 HashMap 由 数组+链表 组成的,数组是 HashMap 的主体,链表则是主要为了解决哈希冲突而存在的。JDK1.8 以后在解决哈希冲突上有了较大的变化,当链表长度大于阈值(默认为 8)时,将链表转化为红黑树,以减少搜索时间。
HashMap 的属性和构造函数
![cb32f71a5f8563321a7042bb1b93a62d.png](https://i-blog.csdnimg.cn/blog_migrate/435524fd8ec46fcab88d53a17491a132.png)
图2 HashMap 属性图