HashMap的底层存储方式
HashMap的底层存储方式分为数组+链表和数组加红黑树两种方式。
在HashMap的成员变量中,有两个参数来决定node的挂载方式是链表还是红黑树。
HashMap成员变量解释:
static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; 默认的数组长度
static final int MAXIMUM_CAPACITY = 1 << 30; 最大数组长度
static final float DEFAULT_LOAD_FACTOR = 0.75f; 默认的加载因子
static final int TREEIFY_THRESHOLD = 8; 当元素个数超过8时链表结构变为红黑树结构
static final int UNTREEIFY_THRESHOLD = 6; 原来红黑树结构元素个数小于6时变为链表结构
static final int MIN_TREEIFY_CAPACITY = 64; 最小树形化阈值
HashMap构造函数分析:
1、最常用的无参构造函数,所有的参数使用默认配置
public HashMap() { this.loadFactor = DEFAULT_LOAD_FACTOR; // all other fields defaulted }
2、提供数组长度的构