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类,获取键-值对的子集。

 

posted @ 2018-09-08 10:31  轻抚丶两袖风尘  阅读(1373)  评论(0编辑  收藏  举报