JAVA集合Map結構總結


概要

如上圖

  1. Map是映射接口,存儲的是Key-Value對
  2. AbstractMap繼承的Map,實現了Map的大部分功能,Map的實現類都是繼承AbstractMap來減少大量的代碼。
  3. SortedMap繼承Map,存儲的是"有序的鍵值對(Key-Value)"。
  4. NavigableMap繼承SortedMap,和SortedMap一樣存儲的都是有序的鍵值對,但是他還有一個導航的功能,可以返回大於/等於某個鍵值對的值,或者返回小於/等於某個鍵值對的值。
  5. TreeMap繼承NavigableMap,實現了NavigableMap的接口,所有TreeMap存儲的也是有序鍵值對。
  6. HashMap繼承於AbstractMap,但是沒有實現NavigableMap,所有他存儲的鍵值對不保證有序。
  7. Hashtable的鍵值對也不保證有序,但是Hashtable沒有繼承AbstractMap,而是繼承的Directionary,實現Map的接口。和HashMap的區別是,Hashtable是線程安全的;HashMap不是線程安全的。
  8. WeakHashMap的鍵是弱鍵。

Map

  • Map是一個Key-value的映射接口。Map不能包含重復的鍵;每個鍵最多只能映射到一個值。
  • Map提供三張Collection視圖:鍵集,值集,鍵-值映射關系。
  • Map的有些實現類可以保證鍵值對的映射順序,有些不能。
  • Map提供的返回值函數:entrySet:返回key-vlaue的鍵值對的Set集合;keySet:返回Key值的Set集合;values:返回value值的Collection集合
  • Map提供相應的操作,如刪除,增加,修改等。

NavigableMap

NavigableMap除了繼承SortedMap的特性外,它的提供的功能可以分為4類:
第1類,提供操作鍵-值對的方法。
               lowerEntry、floorEntry、ceilingEntry 和 higherEntry 方法,它們分別返回與小於、小於等於、大於等於、大於給定鍵的鍵關聯的 Map.Entry 對象。
               firstEntry、pollFirstEntry、lastEntry 和 pollLastEntry 方法,它們返回和/或移除最小和最大的映射關系(如果存在),否則返回 null。
第2類,提供操作鍵的方法。這個和第1類比較類似
               lowerKey、floorKey、ceilingKey 和 higherKey 方法,它們分別返回與小於、小於等於、大於等於、大於給定鍵的鍵。
第3類,獲取鍵集。
              navigableKeySet、descendingKeySet分別獲取正序/反序的鍵集。
第4類,獲取鍵-值對的子集。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM