您的位置:首页 > 编程语言 > Java开发

jdk1.8 HashMap源码分析(构造函数)

2017-08-02 13:51 190 查看
/**
* Constructs an empty <tt>HashMap</tt> with the specified initial
* capacity and load factor.
*
* @param  initialCapacity the initial capacity
* @param  loadFactor      the load factor
* @throws IllegalArgumentException if the initial capacity is negative
*         or the load factor is nonpositive
*/
public HashMap(int initialCapacity, float loadFactor) {
if (initialCapacity < 0)
throw new IllegalArgumentException("Illegal initial capacity: " +
initialCapacity);
if (initialCapacity > MAXIMUM_CAPACITY)
initialCapacity = MAXIMUM_CAPACITY;
if (loadFactor <= 0 || Float.isNaN(loadFactor))
throw new IllegalArgumentException("Illegal load factor: " +
loadFactor);
//默认装载因子0.75
this.loadFactor = loadFactor;
/*
tableSizeFor返回一个数,这个数满足两个条件:
1、大于或等于initialCapacity
2、是2的次幂,如2,4,8,16等

this.threshold:
The next size value at which to resize (capacity * load factor).

// (The javadoc description is true upon serialization.
// Additionally, if the table array has not been allocated, this
// field holds the initial array capacity, or zero signifying
// DEFAULT_INITIAL_CAPACITY.)
int threshold;
*/
this.threshold = tableSizeFor(initialCapacity);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: