SortedMap,NavigableMap

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


3907960-eed2cc4505dbe0b4.png
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中介绍上述方法的实现。

猜你喜欢

转载自blog.csdn.net/sinat_34976604/article/details/80971612
今日推荐