从源码分析SortedMap与NavigableMap

x33g5p2x  于2021-12-06 转载在 其他  
字(2.5k)|赞(0)|评价(0)|浏览(324)

SortedMap

Map集合本身不具有排序的功能,SortedMap接口就提供了排序的操作。

SortedMap直接继承至Map接口。

public interface SortedMap<K,V> extends Map<K,V>

基本方法

SortedMap接口中声明了一些操作Map集合的基本方法。

public interface SortedMap<E> extends Map<E> {
   //返回用于对该map中的映射的键进行排序的比较器
   Comparator<? super K> comparator();

   //返回该map的部分的视图,其键的范围为 fromKey(包含)到 toKey(不包含)
   SortedMap<K,V> subMap(K fromKey, K toKey);

   //返回该map的部分的视图,其键的范围严格小于 toElement 。
   SortedMap<K,V> headMap(K toKey);

   //返回此map中的映射的键大于或等于 fromElement的部分的视图。
   SortedMap<K,V> tailMap(K fromKey);

   //返回此map中当前的第一个(最低)键。 
   K firstKey();

   //返回此map中当前的最后(最高)键。
   K lastKey();

   //返回此map中包含的键的Set视图。
   Set<K> keySet();
   
   //返回此map中包含的值的Collection视图
   Collection<V> values();
   
   //返回此map中包含的映射的Set视图
   Set<Map.Entry<K, V>> entrySet();
}

NavigableMap继承至SortedMap,它对SortedMap进行了扩展,具有了为给定搜索目标报告最接近匹配项的导航方法。

public interface NavigableMap<K,V> extends SortedMap<K,V>

基本方法

public interface NavigableMap<K,V> extends SortedMap<K,V> {
    //返回与最大key相关联的映射严格小于给定key,如果没有这样的key则 null 。 
    Map.Entry<K,V> lowerEntry(K key);

    //返回严格小于给定键的最大键,如果没有这样的键,则返回 null 。 
    K lowerKey(K key);

    //返回与最小键相关联的键值映射小于或等于给定键,如果没有此键,则 null 。 
    Map.Entry<K,V> floorEntry(K key);

    //返回小于或等于给定键的最大键,如果没有这样的键,则返回 null 。 
    K floorKey(K key);

    //返回与大于或等于给定键的最小键相关联的键值映射,如果没有此键,则 null 。 
    Map.Entry<K,V> ceilingEntry(K key);

    //返回大于或等于给定键的 null键,如果没有此键,则返回 null 。 
    K ceilingKey(K key);

    //返回与最小key相关联的映射严格大于给定key,如果没有这样的key则 null 。 
    Map.Entry<K,V> higherEntry(K key);

    //返回严格大于给定键的最小键,如果没有这样的键,则返回 null 。 
    K higherKey(K key);

    //返回与该map中的最小键相关联的键值映射,如果地图为空,则返回 null 。 
    Map.Entry<K,V> firstEntry();

    //返回与该map中最大键相关联的键值映射,如果地图为空,则返回 null 。 
    Map.Entry<K,V> lastEntry();

    //删除并返回与该map中的最小键相关联的键值映射,如果地图为空,则返回 null 。 
    Map.Entry<K,V> pollFirstEntry();

    //删除并返回与该map中最大密钥相关联的键值映射,如果地图为空,则返回 null 。 
    Map.Entry<K,V> pollLastEntry();

    //返回此映射中包含的映射的反向排序视图。
    NavigableMap<K,V> descendingMap();

    //返回此map中包含的键的NavigableSet视图。
    NavigableSet<K> navigableKeySet();

    //返回相反的顺序NavigableSet查看此map中包含的键。
    NavigableSet<K> descendingKeySet();

    //返回该map部分的视图,其关键字范围从fromKey到toKey 。 如果fromKey和toKey相等,则返回的地图为空,除非fromInclusive和toInclusive都为真。 
    NavigableMap<K,V> subMap(K fromKey, boolean fromInclusive,
                             K toKey,   boolean toInclusive);

    //返回此map部分的视图,其键值小于(或等于,如果inclusive为真) toKey 。 
    NavigableMap<K,V> headMap(K toKey, boolean inclusive);

    //返回该map部分的视图,其键大于(或等于,如果inclusive为真) fromKey 。
    NavigableMap<K,V> tailMap(K fromKey, boolean inclusive);

    //返回此map部分的视图,其关键字范围从fromKey (含)到toKey 
    SortedMap<K,V> subMap(K fromKey, K toKey);

    //返回该map部分的视图,其key严格小于toKey 。
    SortedMap<K,V> headMap(K toKey);

    //返回此地图部分的视图,其键大于或等于fromKey 。
    SortedMap<K,V> tailMap(K fromKey);
}

相关文章