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实现原理的主要内容,如果未能解决你的问题,请参考以下文章