Map下的介面及其多個實現類 1.Map :雙列數據存儲key-value對的數據, 類似於高中弄的函數:y=f(x) (1)HashMap:作為map的主要實現類,線程不安全的,效率高,存儲在null的key-value ①存儲在null的key和value如下圖所示 LinkedHashMap: ...
Map下的介面及其多個實現類
1.Map :雙列數據存儲key-value對的數據,---類似於高中弄的函數:y=f(x)
(1)HashMap:作為map的主要實現類,線程不安全的,效率高,存儲在null的key-value
①存儲在null的key和value如下圖所示
LinkedHashMap:保證在遍歷map元素時,可以按照添加的順序實現遍歷,是因為在原有的hashmap底層結構的基礎上,添加了一對指針直向前一個和後一個元素
(2)TreeMmap:保證按照添加的key-value 對進行排序,實現排序遍歷,此時考慮key的自然排序,或者定製排序,底層使用紅黑樹
(3)Hashtable :作為古老的實現了線程安全的,效率低,不能存儲null的key-value
①不能存儲null的dekey和value如下圖所示
2.map中存儲key - value的特點
(1)Map中的key是無序的,不可重覆的,使用set存儲所有的key -->key所在的類要重寫equals和hashcode方法(以hashmap為例)
(2)Map中的value:無序的,可重覆的,使用collection存儲所有的value,--->value所在的類要重寫equals()
一個鍵值對:key-value構成一個entry對象
Map中的entry:無序的,不可重覆的,使用set存儲有的entry;
3.hashmap的底層實現原理:
以jdk7為例說明:
(1)HashMap map = new HashMap():在實例化以後,底層創建了一個長度為16的一維數組.
map.put(key1,value1)