HashMap無參構(gòu)造函數(shù)如下:
/**
* Constructs an empty <tt>HashMap</tt> with the default initial capacity
* (16) and the default load factor (0.75).
*/
public HashMap() {
this.loadFactor = DEFAULT_LOAD_FACTOR; // all other fields defaulted
}
它是如何像它Javadoc中說的一樣構(gòu)造了一個初始容量為16的容器的?Node數(shù)組都不用初始化的么?至少加上一句
table = new Node<>[DEFAULT_INITIAL_CAPACITY];
才合乎常理吧!請各位賜教!
1 回答

墨色風雨
TA貢獻1853條經(jīng)驗 獲得超6個贊
注釋說了在第一次使用的時候才會初始化
/**
* The table, initialized on first use, and resized as
* necessary. When allocated, length is always a power of two.
* (We also tolerate length zero in some operations to allow
* bootstrapping mechanics that are currently not needed.)
*/
transient Node<K,V>[] table;
初始化代碼在 final Node<K,V>[] resize() 方法里面,
Node<K,V>[] newTab = (Node<K,V>[])new Node[newCap];
table指向這個newTab
添加回答
舉報
0/150
提交
取消