一、HashMap简介
HashMap是Java使用频率非常高的一个集合,存储key-value的键值对。采用空间换时间的策略,大大提高检索效率。HashMap的底层是采用链地址法来实现的。
HashMap在JDK1.7及之前版本采用的是数组加链表的方式实现,采用头插法(在链表头部插入节点)。但是当经常发生hash冲突时,链表的长度就会拉长,检索效率也会下降。
JDK1.8之后,也是采用数组加链表,但是采用尾插法(在链表尾部插入节点),同时当链表长度大于8时,会自动转化为红黑树,提高检索效率。检索效率接近O(log2N)。