在學習Set(Set的實現類是基於Map實現的)、HashMap、TreeMap前,先來介紹下Map接口及其下的子接口.
先看下Map的架構圖:
安全
如上圖:
(01) Map 是映射接口,Map中存儲的內容是鍵值對(key-value)。
(02) AbstractMap 是繼承於Map的抽象類,它實現了Map中的大部分API。其它Map的實現類能夠經過繼承AbstractMap來減小重複編碼。
(03) SortedMap 是繼承於Map的接口。SortedMap中的內容是排序的鍵值對,排序的方法是經過比較器(Comparator)。
(04) NavigableMap 是繼承於SortedMap的接口。相比於SortedMap,NavigableMap有一系列的導航方法;如"獲取大於/等於某對象的鍵值對"、「獲取小於/等於某對象的鍵值對」等等。
(05) TreeMap 繼承於AbstractMap,且實現了NavigableMap接口;所以,TreeMap中的內容是「有序的鍵值對」!
(06) HashMap 繼承於AbstractMap,但沒實現NavigableMap接口;所以,HashMap的內容是「鍵值對,但不保證次序」!
(07) Hashtable 雖然不是繼承於AbstractMap,但它繼承於Dictionary(Dictionary也是鍵值對的接口),並且也實現Map接口;所以,Hashtable的內容也是「鍵值對,也不保證次序」。但和HashMap相比,Hashtable是線程安全的,並且它支持經過Enumeration去遍歷。
(08) WeakHashMap 繼承於AbstractMap。它和HashMap的鍵類型不一樣,WeakHashMap的鍵是「弱鍵」(僅自身對key有引用,沒有其餘的引用了)。架構