本文主要是介绍SortedMap,NavigableMap,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
先来看看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);返回第一个(最小)的keyK firstKey();返回最后(最大)的keyK 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);返回最小的EntryMap.Entry<K,V> firstEntry();返回最大的EntryMap.Entry<K,V> lastEntry();删除并返回最小的EntryMap.Entry<K,V> pollFirstEntry();删除并返回最大的EntryMap.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的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!