HashMap实现原理

Posted zawjdbb

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HashMap实现原理相关的知识,希望对你有一定的参考价值。

 

static final int DEFAULT_INITIAL_CAPACITY = 16;// 默认初始容量为16,必须为2的幂  

static final int MAXIMUM_CAPACITY = 1 << 30;// 最大容量为2的30次方  

static final float DEFAULT_LOAD_FACTOR = 0.75f;// 默认加载因子0.75  

transient Entry<K,V>[] table;// Entry数组,哈希表,长度必须为2的幂  

 

transient int size;// 已存元素的个数  

int threshold;// 下次扩容的临界值,size>=threshold就会扩容  

finalfloat loadFactor;// 加载因子  

static final int TREEIFY_THRESHOLD = 8;//由链表转换成树的阈值

static final int UNTREEIFY_THRESHOLD = 6;//由树转换成链表的阈值

static final int MIN_TREEIFY_CAPACITY = 64;//被树化时最小的hash表容量,至少是TREEIFY_THRESHOLD的4倍

构造方法:

HashMap()
          构造一个具有默认初始容量 (16) 和默认加载因子 (0.75) 的空 HashMap

HashMap(int initialCapacity)
          构造一个带指定初始容量和默认加载因子 (0.75) 的空 HashMap

 

构造方法摘要
HashMap()
          构造一个具有默认初始容量 (16) 和默认加载因子 (0.75) 的空 HashMap
HashMap(int initialCapacity)
          构造一个带指定初始容量和默认加载因子 (0.75) 的空 HashMap
HashMap(int initialCapacity, float loadFactor)
          构造一个带指定初始容量和加载因子的空 HashMap
HashMap(Map<? extendsK,? extendsV> m)
          构造一个映射关系与指定 Map 相同的 HashMap

以上是关于HashMap实现原理的主要内容,如果未能解决你的问题,请参考以下文章

从代码层读懂HashMap的实现原理

从代码层读懂HashMap的实现原理

从代码层读懂 Java HashMap 的实现原理

HashMap实现原理和源码详细分析

HashMap实现原理和源码详细分析

Java HashMap实现原理 源码剖析