java集合框架總結(六)
阿新 • • 發佈:2019-02-19
一、Map 簡介
- Map 用於儲存具有對映關係的資料,因此 Map 集合裡儲存著兩組值,一組值用於儲存 Map 裡的 Key,另外一組用於儲存 Map 裡的 Value
- Map 中的 key 和 value 都可以是任何引用型別的資料
- Map 中的 Key 不允許重複,即同一個 Map 物件的任何兩個 Key 通過 equals 方法比較中返回 false
- Key 和 Value 之間存在單向一對一關係,即通過指定的 Key 總能找到唯一的,確定的 Value。
- 相關方法:
- 結構圖:
二、HashMap & Hashtable
HashMap 和 Hashtable 是 Map 介面的兩個典型實現類,區別:
- Hashtable 是一個古老的 Map 實現類,不建議使用
- Hashtable 是一個執行緒安全的 Map 實現,但 HashMap 是執行緒不安全的。
- Hashtable 不允許使用 null 作為 key 和 value,而 HashMap 可以與 HashSet 集合不能保證元素的順序的順序一樣,Hashtable 、HashMap 也不能保證其中 key-value 對的順序
- Hashtable 、HashMap 判斷兩個 Key 相等的標準是:兩個 Key 通過 equals 方法true,hashCode 值也相等。
- Hashtable 、HashMap 判斷兩個 Value相等的標準是:兩個 Value 通過 equals 方法返回 true
三、LinkedHashMap
- LinkedHashMap 是 HashMap 的子類
- LinkedHashMap 可以維護 Map 的迭代順序:迭代順序與 Key-Value 對的插入順序一致
四、Properties
- Properties 類是 Hashtable 的子類,該物件用於處理屬性檔案
- 由於屬性檔案裡的 key、value 都是字串型別,所以 properties 裡的 Key 和 Value 都是字串型別的
五、TreeMap
- TreeMap 儲存 Key-Value 對時,需要根據 Key 對 key-value 對進行排序。TreeMap 可以保證所有的 Key-Value 對處於有序狀態。
- TreeMap 的 Key 的排序:
- 自然排序:TreeMap 的所有的 Key 必須實現 Comparable 介面,而且所有的 Key 應該是同一個類的物件,否則將會丟擲 ClasssCastException
-定製排序:建立 TreeMap 時,傳入一個 Comparator 物件,該物件負責對 TreeMap 中的所有 key 進行排序。此時不需要 Map 的 Key 實現 Comparable 介面