美文网首页
SortedMap,NavigableMap

SortedMap,NavigableMap

作者: 囧囧有神2号 | 来源:发表于2018-07-03 11:21 被阅读0次

先来看看TreeMap的继承关系图:


TreeMap

来看看二者都定义了些什么方法

SortedMap

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

    Comparator<? super K> comparator();

返回 [fromeKey, toKey),左闭右开,区间内的原map的一个视图
    SortedMap<K,V> subMap(K fromKey, K toKey);


返回小于toKey的原map的一个视图
    SortedMap<K,V> headMap(K toKey);


返回一个大于等于fromKey的视图,并不是将原map中大于等于formeKey的节点
复制重新组成一个新的map,对该map的操作等同于对原map相应位置的节点的操作,
就是提供一个大于等于fromeKey的视图
    SortedMap<K,V> tailMap(K fromKey);

返回第一个(最小)的key
    K firstKey();

返回最后(最大)的key
    K lastKey();

    Set<K> keySet();

    Collection<V> values();

    Set<Map.Entry<K, V>> entrySet();
}

NavigableMap

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

返回原map中小于且最接近key的键值对(不包含等于)
    Map.Entry<K,V> lowerEntry(K key);

返回小于且最接近key的键(不包含等于)
    K lowerKey(K key);

返回小于且最接近key的键值对(包含等于)
    Map.Entry<K,V> floorEntry(K key);

返回最接近的大于key的键(包含等于)
    K floorKey(K key);

返回最接近的大于等于key的键值对
    Map.Entry<K,V> ceilingEntry(K key);

返回最接近的大于等于key的键
    K ceilingKey(K key);

返回最接近的大于key的键值对
    Map.Entry<K,V> higherEntry(K key);

返回最接近的大于key的键
    K higherKey(K key);

返回最小的Entry
    Map.Entry<K,V> firstEntry();

返回最大的Entry
    Map.Entry<K,V> lastEntry();

删除并返回最小的Entry
    Map.Entry<K,V> pollFirstEntry();

删除并返回最大的Entry
    Map.Entry<K,V> pollLastEntry();

返回一个与原map反向顺序的视图,仍然是同一个map,操作会互相影响
    NavigableMap<K,V> descendingMap();

返回一个所有key键的视图
    NavigableSet<K> navigableKeySet();

返回一个所有key键的视图,顺序是逆序
    NavigableSet<K> descendingKeySet();

返回fromKey到toKey的map视图,通过fromInclusive与toInclusive控制是否包含
    NavigableMap<K,V> subMap(K fromKey, boolean fromInclusive,
                             K toKey,   boolean toInclusive);

返回小于toKey的键值对的视图(inclusive为true代表包含等于)
    NavigableMap<K,V> headMap(K toKey, boolean inclusive);

返回大于fromKey的键值对视图(inclusive为true代表包含等于)
    NavigableMap<K,V> tailMap(K fromKey, boolean inclusive);

范围 [fromKey, toKey) 的视图
    SortedMap<K,V> subMap(K fromKey, K toKey);

小于toKey的map视图
    SortedMap<K,V> headMap(K toKey);

大于等于fromKey的map视图
    SortedMap<K,V> tailMap(K fromKey);
}

接下来会在TreeMap中介绍上述方法的实现。

相关文章

  • SortedMap,NavigableMap

    先来看看TreeMap的继承关系图: 来看看二者都定义了些什么方法 SortedMap NavigableMap ...

  • 2019-01-11

    一、继承关系 继承AbstractMap 实现了NavigableMap方法(扩展的SortedMap接口)导航方...

  • 22-SortedMap

    类介绍 定位 SortedMap类是在Map的基础上增加了排序的功能。Map和Set一样,原本是没有强制顺序的,大...

  • NavigableMap与NavigableSet

    看glide的缓存代码时, 发现了这两个陌生的集合名称, 竟然还是标准库中的, 汗颜!~~ 看看作者, 牛不...

  • 23-NavigableMap

    类介绍 类定位 对SortedMap进行了完善,增加了一些新的方法,主要几种在两个方面: 边缘取值 逆向遍历 类继...

  • 03_TreeMap

    A Red-Black tree based NavigableMap implementation.The ma...

  • 【阿里P8大牛教你Android入门之路(java篇)】Java

    一、概述 A Red-Black tree based NavigableMap implementation. ...

  • Java TreeMap工作原理及实现

    1. 概述 A Red-Black tree based NavigableMap implementation....

  • TreeSet&NavigableMap&NavigableSe

    1 TreeSet TreeSet是一个有序的Set集合。既然是有序,那么它是靠什么来维持顺序的呢,TreeMap...

  • 3月8日

    看了一些集合的东西 hashset hashmap treeset sortedmap collection和ma...

网友评论

      本文标题:SortedMap,NavigableMap

      本文链接:https://www.haomeiwen.com/subject/sazruftx.html