一、类图
二、源码分析
a. NavigableMap 继承了 SortedMap,提供了关于搜索的更多方法
//返回第一个key小于参数的Entry Map.Entry<K,V> lowerEntry(K key); //返回第一个key小于参数的key K lowerKey(K key); //返回第一个key小于等于参数的Entry Map.Entry<K,V> floorEntry(K key); //返回第一个key小于等于参数的key K floorKey(K key); //返回第一个key大于等于参数的Entry Map.Entry<K,V> ceilingEntry(K key); //返回第一个key大于等于参数的key K ceilingKey(K key); //返回第一个key大于参数的Entry Map.Entry<K,V> higherEntry(K key); //返回第一个key大于参数的key K higherKey(K key); //返回key最小的Entry Map.Entry<K,V> firstEntry(); //返回key最大的Entry Map.Entry<K,V> lastEntry(); //删除并返回key最小的Entry Map.Entry<K,V> pollFirstEntry(); //删除并返回key最大的Entry Map.Entry<K,V> pollLastEntry(); //返回key降序排列的NavigableMap NavigableMap<K,V> descendingMap(); //返回key升序排列的NavigableSet NavigableSet<K> navigableKeySet(); //返回key降序排列的NavigableSet NavigableSet<K> descendingKeySet(); //返回key升序排列的子映射,设置包含标志 NavigableMap<K,V> subMap(K fromKey, boolean fromInclusive, K toKey, boolean toInclusive); //按key升序排列,返回子映射,开头到toKey,设置包含标志 NavigableMap<K,V> headMap(K toKey, boolean inclusive); //按key升序排列,返回子映射,fromKey到末尾,设置包含标志 NavigableMap<K,V> tailMap(K fromKey, boolean inclusive); //同时也继承了SortedMap的不带包含标志的子映射方法 SortedMap<K,V> subMap(K fromKey, K toKey); SortedMap<K,V> headMap(K toKey); SortedMap<K,V> tailMap(K fromKey);