1. 程式人生 > >java集合框架總結(六)

java集合框架總結(六)

一、Map 簡介

  • Map 用於儲存具有對映關係的資料,因此 Map 集合裡儲存著兩組值,一組值用於儲存 Map 裡的 Key,另外一組用於儲存 Map 裡的 Value
  • Map 中的 key 和  value 都可以是任何引用型別的資料
  • Map 中的 Key 不允許重複,即同一個 Map 物件的任何兩個 Key 通過 equals 方法比較中返回 false
  • Key 和 Value 之間存在單向一對一關係,即通過指定的 Key 總能找到唯一的,確定的 Value。
  • 相關方法:
  • 100013_xloG_2811721.png
  • 結構圖:100312_ePwk_2811721.png

二、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 介面