jdk源碼閱讀-HashMap

前置閱讀:html

jdk源碼閱讀-Map : http://www.cnblogs.com/ccode/p/4645683.htmlapi

在前置閱讀的文章裏,已經提到HashMap是基於Hash表實現的,因此在講解HashMap以前 ,有必要提早了解下Hash的原理。函數

。。。this

咱們能夠從這個網址中找到HashMap對應的API列表,相信熟悉Java的人應該對這些方法已經很熟悉了。spa

http://tool.oschina.net/apidocs/apidoc?api=jdk_7u4.net

方法和屬性列表:code

構造函數:htm

Hash()blog

 

構造函數:ci

 1  public HashMap(int initialCapacity, float loadFactor) {
 2         if (initialCapacity < 0) //若是
 3             throw new IllegalArgumentException("Illegal initial capacity: " +
 4                                                initialCapacity);
 5         if (initialCapacity > MAXIMUM_CAPACITY)
 6             initialCapacity = MAXIMUM_CAPACITY;
 7         if (loadFactor <= 0 || Float.isNaN(loadFactor))
 8             throw new IllegalArgumentException("Illegal load factor: " +
 9                                                loadFactor);
10 
11         this.loadFactor = loadFactor;
12         threshold = initialCapacity;
13         init();
14     }

該構造函數通常狀況下初學者可能用的較少。該構造函數的定義是

 

 

HashMap():

1 public HashMap() {
2         this(DEFAULT_INITIAL_CAPACITY, DEFAULT_LOAD_FACTOR);
3 }

會自動調用帶String參數的構造方法

構造一個空的HashMap。其默認的初始容量爲 16,負載因子爲 0.75 

在這裏須要介紹幾個概念:

初始容量:

負載因子:散列表的實際元素數目(n)/ 散列表的容量(m)。

相關文章
相關標籤/搜索