(1)简介
HashMap基于map接口,元素以键值对方式存储,允许有null值,HashMap是线程不安全的。(2)基本属性
初始化大小,默认16,2倍扩容;负载因子0.75;
初始化的默认数组;
size
threshold。判断是否需要调整hashmap容量
(3)HashMap的存储结构
JDK1.7中采用数组+链表的存储形式。HashMap采取Entry数组来存储key-value,每一个键值对组成了一个Entry实体,Entry类时机上是一个单向的链表结构,它具有next指针,指向下一个Entry实体,以此来解决Hash冲突的问题。
HashMap实现一个内部类Entry,重要的属性有hash、key、value、next。
JDK1.8中采用数据+链表+红黑树的存储形式。当链表长度超过阈值(8)时,将链表转换为红黑树。在性能上进一步得到提升。
标签:存储,HashMap,实现,链表,键值,数组,Entry,原理 From: https://www.cnblogs.com/wyl010926/p/17744017.html