【源码】SortedMap& NavigableMap
java.util.SortedMap
package java.util;
/*定义有序Map*/
public interface SortedMap<K,V> extends Map<K,V> {
Comparator<? super K> comparator();//比较器
SortedMap<K,V> subMap(K fromKey, K toKey);//获取范围内的值
SortedMap<K,V> headMap(K toKey);//获取头Map
SortedMap<K,V> tailMap(K fromKey);//获取尾部Map
K firstKey();//获取头key
K lastKey();//获取尾key
Set<K> keySet();
Collection<V> values();
Set<Map.Entry<K, V>> entrySet();
}
java.util.NavigableMap
package java.util;
/*继承于SortedMap, 有序Map, 提供了多种有序特性方法*/
public interface NavigableMap<K,V> extends SortedMap<K,V> {
Map.Entry<K,V> lowerEntry(K key);//小于
K lowerKey(K key);//小于
Map.Entry<K,V> floorEntry(K key);//小于等于
K floorKey(K key);//小于等于
Map.Entry<K,V> ceilingEntry(K key);//大于等于
K ceilingKey(K key);//大于等于
Map.Entry<K,V> higherEntry(K key);//大于
K higherKey(K key);//大于
Map.Entry<K,V> firstEntry();//头Entry
Map.Entry<K,V> lastEntry();//尾Entry
Map.Entry<K,V> pollFirstEntry();//获取并删除头Entry
Map.Entry<K,V> pollLastEntry();//获取并删除尾部Entry
NavigableMap<K,V> descendingMap();//返回逆向排序的Map
NavigableSet<K> navigableKeySet();
NavigableSet<K> descendingKeySet();
NavigableMap<K,V> subMap(K fromKey, boolean fromInclusive,
K toKey, boolean toInclusive);
NavigableMap<K,V> headMap(K toKey, boolean inclusive);
NavigableMap<K,V> tailMap(K fromKey, boolean inclusive);
SortedMap<K,V> subMap(K fromKey, K toKey);
SortedMap<K,V> headMap(K toKey);
SortedMap<K,V> tailMap(K fromKey);
}
总结
有序Map通过Comparator来实现, 提供了排序后的特性方法。
- 以上源码均来自JDK1.8.0_171