Map-HashMap
一、HashMap数据结构 JDK 1.7 采用数组 + 链表实现。 JDK 1.8 采用数组 + 链表 + 红黑树实现。链表采用内部类Node节点实现。红黑树采用内部类TreeNode节点实现。 二、重要参数 // 1. 容量(capacity): 必须是2的幂 & <最大容量(2的30次方),默认是16 static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // 最大容量 = 2的30次方(若传入的容量过大,将被最大值替换) static final int MAXIMUM_CAPACITY = 1 << 30; // 2. 加载因子(Load factor):HashMap在其容量自动增加前可达到多满的一种尺度 // 加载因子过大则容器内可添加更多元素,空间效率高,但是容易导致哈希冲突。反之反之 final float loadFactor; // 实际加载因子 static final float DEFAULT_LOAD_FACTOR = 0.75f; // 默认加载因子 = 0.75 h // 3. 扩容阈值 = 容量 x 加载因子,哈希表的大小 ≥ 扩容阈值时,就会扩容哈希表 int threshold; // 4. 其他 transient Node<K,V>[] table; //