標籤:
---恢複內容開始---
Map提供了一個更通用的元素儲存方法,Map集合類用於儲存元素對(稱作“鍵”和“值”),其中每個鍵映射到一個值。
瞭解Map介面和方法
Map構建
Map更新方法:可以更改Map內容,
clear()從Map中刪除所有的映射
remove(Object key)從Map中刪除鍵和關聯的值
put(Object key,Object value)將指定值與指定鍵相關聯
putAll(Map t)將指定Map中的所有映射複製到此Map
HashMap:
HashMap是基於雜湊表的Map介面的實現,以key-value的形式存在,在HashMap中,key-value總是會當做一個整體來處理,系統會根據hash演算法來計算key-value的位置
1.定義:
HashMap實現了Map介面,繼承AbstractMap,其中Map介面定義了鍵映射到值的規則,而AbstractMap類提供Map介面的骨幹實現
public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>,Cloneable,Serializable
2建構函式:
HashMap提供了三個建構函式:
HashMap():構造一個具有預設初始容量(16)和預設載入因子(0.75)的空HashMap
HashMap(int initialCapacity):構造一個帶指定初始容量和預設載入因子(0.75)的空HashMap
HashMap(int initialCapacity,float loadFactor):構造一個帶指定初始容量和載入因子的空HashMap
初始容量,載入因子,這兩個參數是影響HashMap效能的重要參數,其中容量表示雜湊表中桶的數量,初始容量是建立雜湊表時的容量,載入因子是雜湊表在其容量自動增加之前可以達到多滿的一種尺度,他衡量的是一個散列表的空間的使用程度,負載因子越大表示散列表的裝填程度越高,
3資料結構:
在java中最常用的兩種結構是數組和類比指標(引用),幾乎所有的資料結構都可以利用這兩種來組合實現,HashMap是一個“鏈表散列”,如下是他的資料結構
從可以看出HashMap底層實現的還是數組,只是數組的每一項都是一條鏈,其中參數initialCapacity就代表了該數組的長度4儲存實現:
4.HashMap
在儲存索引值對的時候, 使用雜湊演算法對鍵對象去重複, 效率高, 沒有順序.
當儲存一個索引值對的時候, 先調用鍵對象的hashCode()方法計算一個雜湊值, 在集合中尋找是否有雜湊值相同鍵對象.
如果沒有雜湊值相同的鍵對象, 直接將索引值對存入.
如果有雜湊值相同鍵對象, 則和雜湊值相同的鍵對象進行equals()比較.
比較結果為false就存入索引值對.
比較結果為true則用新的值覆蓋舊的值.
java Map集合類