一、map接口中定義了map的基本操做,同時也對key--value的形式作了定義:在接口map中定義了一個內部接口entry,實現類能夠經過實現此接口實現對key--value的封裝 java
二、關於public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>的我的理解 函數
接口定義了一個類的類型,hashmap實現了map接口表示其是一個map類型的實現類,這個類型是不受其餘類的影響而改變的;若是hashmap不實現map接口,雖然AbstractMap也實現了map接口,此時hashmap類型的定義是經過繼承AbstractMap表示的,依賴於AbstractMap,若是AbstractMap的類型改變了hashmap的類型也會隨之改變。 繼承
三、HashMap定義了靜態內部類Entry,將key-value以及hash桶的概念封裝在了一塊兒。在HashMap中,用一個table鏈表存儲hash桶,每一個位置表示一個hash碼,其值是一個entry,將相同hash碼的entry付給其next的值;在查詢的時候只有其hash碼相同了,纔有可能查到其值 接口
四、hashmap實現了Serializable,同時定義了transient的數據域,所以重寫了private void writeObject(java.io.ObjectOutputStream s)和 private void readObject(java.io.ObjectInputStream s) hash
五、函數不是隨便拆分,將有獨立意義的操做拆分出來 it