- java.lang.Object
-
- java.util.AbstractMap<K,V>
-
- java.util.TreeMap<K,V>
-
- 参数类型
-
K
- 此映射维护的键的类型 -
V
- 映射值的类型
- 实现的所有接口
-
Serializable
,Cloneable
,Map<K,V>
,NavigableMap<K,V>
,SortedMap<K,V>
public class TreeMap<K,V> extends AbstractMap<K,V> implements NavigableMap<K,V>, Cloneable, Serializable
基于红黑树的NavigableMap
实现。 该地图是根据排序natural ordering其密钥,或通过Comparator
在地图创建时提供,这取决于所使用的构造方法。此实现提供了保证的log(n)时间成本
containsKey
,get
,put
和remove
操作。 算法是对Cormen,Leiserson和Rivest的算法导论中的算法的改编。请注意,如果此有序映射要正确实现
Map
接口,则树映射维护的排序(如任何已排序的映射,以及是否提供显式比较器)必须与equals
一致 。 (有关与equals一致的精确定义,请参阅Comparable
或Comparator
)这是因为Map
接口是根据equals
操作定义的,但是有序映射使用其compareTo
(或compare
)方法执行所有键比较,因此从排序映射的角度来看,通过此方法被视为相等的键是相等的。 即使排序与equals
不一致,也可以很好地定义有序映射的行为。 它只是没有遵守Map
接口的一般合同。请注意,此实现不同步。 如果多个线程同时访问映射,并且至少有一个线程在结构上修改了映射,则必须在外部进行同步。 (结构修改是添加或删除一个或多个映射的任何操作;仅仅更改与现有键关联的值不是结构修改。)这通常通过在自然封装映射的某个对象上进行同步来实现。 如果不存在此类对象,则应使用
Collections.synchronizedSortedMap
方法“包装”地图。 这最好在创建时完成,以防止意外地不同步访问地图:SortedMap m = Collections.synchronizedSortedMap(new TreeMap(...));
由此类的所有“集合视图方法”返回的集合的
iterator
方法返回的迭代器是快速失败的 :如果在创建迭代器之后的任何时候对映射进行结构修改,除非通过迭代器自己的remove
方法,迭代器将抛出一个ConcurrentModificationException
。 因此,在并发修改的情况下,迭代器快速而干净地失败,而不是在未来的未确定时间冒任意,非确定性行为的风险。请注意,迭代器的快速失败行为无法得到保证,因为一般来说,在存在不同步的并发修改时,不可能做出任何硬性保证。 失败快速迭代器会尽最大努力抛出
ConcurrentModificationException
。 因此,编写依赖于此异常的程序以确保其正确性是错误的: 迭代器的快速失败行为应该仅用于检测错误。Map.Entry
的方法返回的所有Map.Entry
对及其视图表示生成时映射的快照。 他们不支持Entry.setValue
方法。 (但请注意,可以使用put
更改关联映射中的映射。)此类是Java Collections Framework的成员。
- 从以下版本开始:
- 1.2
- 另请参见:
-
Map
,HashMap
,Hashtable
,Comparable
,Comparator
,Collection
, Serialized Form
-
-
嵌套类汇总
-
嵌套类/接口声明在类 java.util.AbstractMap
AbstractMap.SimpleEntry<K,V>, AbstractMap.SimpleImmutableEntry<K,V>
-
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 Map.Entry<K,V>
ceilingEntry(K key)
返回与大于或等于给定键的最小键关联的键 - 值映射,如果没有此键,则null
。K
ceilingKey(K key)
返回大于或等于给定键的null
键,如果没有这样的键,则null
。void
clear()
从此映射中删除所有映射。Object
clone()
返回此TreeMap
实例的浅表副本。boolean
containsKey(Object key)
如果此映射包含指定键的映射,则返回true
。boolean
containsValue(Object value)
如果此映射将一个或多个键映射到指定值,则返回true
。NavigableSet<K>
descendingKeySet()
返回此映射中包含的键的反向顺序NavigableSet
视图。NavigableMap<K,V>
descendingMap()
返回此映射中包含的映射的逆序视图。Set<Map.Entry<K,V>>
entrySet()
返回此映射中包含的映射的Set
视图。Map.Entry<K,V>
firstEntry()
返回与此映射中的最小键关联的键 - 值映射,如果映射为空,则null
。K
firstKey()
返回此映射中当前的第一个(最低)键。Map.Entry<K,V>
floorEntry(K key)
返回与小于或等于给定键的最大键关联的键 - 值映射,如果没有此键,则null
。K
floorKey(K key)
返回小于或等于给定键的最大键,如果没有这样的键,则null
。V
get(Object key)
返回指定键映射到的值,如果此映射不包含键的映射,则返回null
。SortedMap<K,V>
headMap(K toKey)
返回此映射的部分视图,其键严格小于toKey
。NavigableMap<K,V>
headMap(K toKey, boolean inclusive)
返回此映射的部分视图,其键小于(或等于,如果inclusive
为真)toKey
。Map.Entry<K,V>
higherEntry(K key)
返回与严格大于给定键的最小键关联的键 - 值映射,如果没有此键,则null
。K
higherKey(K key)
返回严格大于给定键的最小键,如果没有这样的键,则返回null
。Set<K>
keySet()
返回此映射中包含的键的Set
视图。Map.Entry<K,V>
lastEntry()
返回与此映射中的最大键关联的键 - 值映射,如果映射为空,则null
。K
lastKey()
返回此映射中当前的最后一个(最高)键。Map.Entry<K,V>
lowerEntry(K key)
返回与严格小于给定键的最大键相关联的键 - 值映射,如果没有这样的键,则null
。K
lowerKey(K key)
返回严格小于给定键的最大键,如果没有这样键,则返回null
。NavigableSet<K>
navigableKeySet()
返回此映射中包含的键的NavigableSet
视图。Map.Entry<K,V>
pollFirstEntry()
删除并返回与此映射中的最小键关联的键 - 值映射,如果映射为空,则null
。Map.Entry<K,V>
pollLastEntry()
删除并返回与此映射中的最大键关联的键 - 值映射,如果映射为空,则null
。V
put(K key, V value)
将指定的值与此映射中的指定键相关联。void
putAll(Map<? extends K,? extends V> map)
将指定映射中的所有映射复制到此映射。V
remove(Object key)
如果存在,则从此TreeMap中删除此键的映射。int
size()
返回此映射中键 - 值映射的数量。NavigableMap<K,V>
subMap(K fromKey, boolean fromInclusive, K toKey, boolean toInclusive)
返回此映射部分的视图,其键范围为fromKey
至toKey
。SortedMap<K,V>
subMap(K fromKey, K toKey)
返回此映射部分的视图,其键的范围从fromKey
(包括toKey
)到toKey
(独占)。SortedMap<K,V>
tailMap(K fromKey)
返回此映射的部分视图,其键大于或等于fromKey
。NavigableMap<K,V>
tailMap(K fromKey, boolean inclusive)
返回此映射的部分视图,其键大于(或等于,如果inclusive
为真)fromKey
。Collection<V>
values()
返回此映射中包含的值的Collection
视图。-
声明方法的类 java.util.AbstractMap
equals, hashCode, isEmpty, toString
-
声明方法的接口 java.util.Map
compute, computeIfAbsent, computeIfPresent, equals, forEach, getOrDefault, hashCode, isEmpty, merge, putIfAbsent, remove, replace, replace, replaceAll
-
声明方法的接口 java.util.SortedMap
comparator
-
-
-
-
构造方法详细信息
-
TreeMap
public TreeMap()
使用其键的自然顺序构造一个新的空树图。 插入到地图中的所有键都必须实现Comparable
接口。 此外,所有这些键必须是可相互比较的 :k1.compareTo(k2)
不得为ClassCastException
中的任何键k1
和k2
抛出ClassCastException
。 如果用户尝试将键放入违反此约束的映射中(例如,用户尝试将字符串键放入键为整数的映射中),则put(Object key, Object value)
调用将抛出ClassCastException
。
-
TreeMap
public TreeMap(Comparator<? super K> comparator)
构造一个新的空树图,根据给定的比较器排序。 插入到地图中的所有键必须由给定的比较器相互比较:comparator.compare(k1, k2)
不得为ClassCastException
中的任何键k1
和k2
抛出ClassCastException
。 如果用户尝试将密钥放入违反此约束的映射中,则put(Object key, Object value)
调用将抛出ClassCastException
。- 参数
-
comparator
- 将用于订购此地图的比较器。 如果是null
,将使用natural ordering的密钥。
-
TreeMap
public TreeMap(Map<? extends K,? extends V> m)
构造一个新的树映射,其中包含与给定映射相同的映射,根据其键的自然顺序排序 。 插入新映射的所有键必须实现Comparable
接口。 此外,所有这些键必须是可相互比较的 :k1.compareTo(k2)
不得为ClassCastException
中的任何键k1
和k2
抛出ClassCastException
。 此方法在n * log(n)时间内运行。- 参数
-
m
-m
映射放置在此映射中的映射 - 异常
-
ClassCastException
- 如果m中的键不是Comparable
,或者不能相互比较 -
NullPointerException
- 如果指定的映射为null
-
TreeMap
public TreeMap(SortedMap<K,? extends V> m)
构造一个包含相同映射的新树映射,并使用与指定有序映射相同的顺序。 此方法以线性时间运行。- 参数
-
m
- 已映射的映射,其映射将放置在此映射中,其比较器将用于对此映射进行排序 - 异常
-
NullPointerException
- 如果指定的映射为null
-
-
方法详细信息
-
size
public int size()
返回此映射中键 - 值映射的数量。
-
containsKey
public boolean containsKey(Object key)
如果此映射包含指定键的映射,则返回true
。- Specified by:
-
containsKey
在界面Map<K,V>
- 重写:
-
containsKey
在类AbstractMap<K,V>
- 参数
-
key
- 要测试其在此地图中的存在的密钥 - 结果
-
true
如果此映射包含指定键的映射 - 异常
-
ClassCastException
- 如果指定的密钥无法与地图中当前的密钥进行比较 -
NullPointerException
- 如果指定的键为null并且此映射使用自然顺序,或者其比较器不允许null键
-
containsValue
public boolean containsValue(Object value)
如果此映射将一个或多个键映射到指定值,则返回true
。 更正式地,返回true
当且仅当此映射包含的至少一个映射到一个值v
使得(value==null ? v==null : value.equals(v))
。 对于大多数实现,此操作可能需要在地图大小上线性时间。- Specified by:
-
containsValue
在界面Map<K,V>
- 重写:
-
containsValue
在类AbstractMap<K,V>
- 参数
-
value
- 要测试其在此映射中的存在的值 - 结果
-
true
若存在于value
的映射; 否则为false
- 从以下版本开始:
- 1.2
-
get
public V get(Object key)
返回指定键映射到的值,如果此映射不包含键的映射,则返回null
。更正式地,如果此映射包含从密钥映射
k
为一个值v
使得key
比较等于k
根据地图的排序,则此方法返回v
; 否则返回null
。 (最多可以有一个这样的映射。)返回值
null
不一定表示映射不包含键的映射; 地图也可能明确地将密钥映射到null
。 可以使用containsKey
操作来区分这两种情况。- Specified by:
-
get
在界面Map<K,V>
- 重写:
-
get
在类AbstractMap<K,V>
- 参数
-
key
- 要返回其关联值的键 - 结果
-
指定键映射到的值,如果此映射不包含键的映射,
null
- 异常
-
ClassCastException
- 如果指定的键无法与地图中当前的键进行比较 -
NullPointerException
- 如果指定的键为null并且此映射使用自然顺序,或者其比较器不允许null键
-
firstKey
public K firstKey()
从界面复制的说明:SortedMap
返回此映射中当前的第一个(最低)键。- Specified by:
-
firstKey
在界面SortedMap<K,V>
- 结果
- 当前在此地图中的第一个(最低)键
- 异常
-
NoSuchElementException
- 如果此地图为空
-
lastKey
public K lastKey()
从界面复制的说明:SortedMap
返回此映射中当前的最后一个(最高)键。- Specified by:
-
lastKey
在界面SortedMap<K,V>
- 结果
- 当前在此地图中的最后一个(最高)键
- 异常
-
NoSuchElementException
- 如果此地图为空
-
putAll
public void putAll(Map<? extends K,? extends V> map)
将指定映射中的所有映射复制到此映射。 这些映射将替换此映射对当前位于指定映射中的任何键的任何映射。- Specified by:
-
putAll
在界面Map<K,V>
- 重写:
-
putAll
类AbstractMap<K,V>
- 参数
-
map
- 要存储在此映射中的映射 - 异常
-
ClassCastException
- 如果指定映射中的键或值的类阻止它存储在此映射中 -
NullPointerException
- 如果指定的映射为null或指定的映射包含空键,并且此映射不允许null键
-
put
public V put(K key, V value)
将指定的值与此映射中的指定键相关联。 如果映射先前包含键的映射,则替换旧值。- Specified by:
-
put
在界面Map<K,V>
- 重写:
-
put
在类AbstractMap<K,V>
- 参数
-
key
- 与指定值关联的键 -
value
- 要与指定键关联的值 - 结果
-
先前的值相关联的
key
,或null
如果没有映射key
。 (Anull
返回也可以表示以前与null
关联的地图与key
) - 异常
-
ClassCastException
- 如果无法将指定的键与当前映射中的键进行比较 -
NullPointerException
- 如果指定的键为null并且此映射使用自然排序,或者其比较器不允许null键
-
remove
public V remove(Object key)
如果存在,则从此TreeMap中删除此键的映射。- Specified by:
-
remove
接口Map<K,V>
- 重写:
-
remove
在类AbstractMap<K,V>
- 参数
-
key
- 应删除映射的键 - 结果
-
与
key
关联的先前值,如果null
没有映射,key
。 (Anull
返回也可以表示该映射以前关联null
与key
)。 - 异常
-
ClassCastException
- 如果指定的密钥无法与地图中当前的密钥进行比较 -
NullPointerException
- 如果指定的键为null并且此映射使用自然排序,或者其比较器不允许null键
-
clear
public void clear()
从此映射中删除所有映射。 此调用返回后,映射将为空。
-
clone
public Object clone()
返回此TreeMap
实例的浅表副本。 (键和值本身不会被克隆。)- 重写:
-
clone
在类AbstractMap<K,V>
- 结果
- 这张地图的浅表副本
- 另请参见:
-
Cloneable
-
firstEntry
public Map.Entry<K,V> firstEntry()
从界面复制的说明:NavigableMap
返回与此映射中的最小键关联的键 - 值映射,如果映射为空,则null
。- Specified by:
-
firstEntry
在界面NavigableMap<K,V>
- 结果
-
具有最小键的条目,或者如果此映射为空
null
- 从以下版本开始:
- 1.6
-
lastEntry
public Map.Entry<K,V> lastEntry()
从界面复制的说明:NavigableMap
返回与此映射中的最大键关联的键 - 值映射,如果映射为空,则null
。- Specified by:
-
lastEntry
在界面NavigableMap<K,V>
- 结果
-
具有最大键的条目,如果此映射为空,
null
- 从以下版本开始:
- 1.6
-
pollFirstEntry
public Map.Entry<K,V> pollFirstEntry()
从界面复制的说明:NavigableMap
删除并返回与此映射中的最小键关联的键 - 值映射,如果映射为空,则null
。- Specified by:
-
pollFirstEntry
在界面NavigableMap<K,V>
- 结果
-
删除此地图的第一个条目,如果此地图为空,
null
- 从以下版本开始:
- 1.6
-
pollLastEntry
public Map.Entry<K,V> pollLastEntry()
从界面复制的说明:NavigableMap
删除并返回与此地图中最大键关联的键值映射,如果地图为空,则null
。- Specified by:
-
pollLastEntry
在界面NavigableMap<K,V>
- 结果
-
删除此地图的最后一个条目,如果此地图为空,
null
- 从以下版本开始:
- 1.6
-
lowerEntry
public Map.Entry<K,V> lowerEntry(K key)
从界面复制的说明:NavigableMap
返回与严格小于给定键的最大键相关联的键 - 值映射,如果没有此键,则null
。- Specified by:
-
lowerEntry
在界面NavigableMap<K,V>
- 参数
-
key
- 关键 - 结果
-
最大密钥小于
key
的条目,如果没有这样的密钥null
- 异常
-
ClassCastException
- 如果指定的密钥无法与地图中当前的密钥进行比较 -
NullPointerException
- 如果指定的键为null并且此映射使用自然顺序,或者其比较器不允许null键 - 从以下版本开始:
- 1.6
-
lowerKey
public K lowerKey(K key)
从界面复制的说明:NavigableMap
返回严格小于给定键的最大键,如果没有这样键,则返回null
。- Specified by:
-
lowerKey
在界面NavigableMap<K,V>
- 参数
-
key
- 关键 - 结果
-
如果没有这样的密钥,最大密钥小于
key
,或null
- 异常
-
ClassCastException
- 如果无法将指定的键与当前映射中的键进行比较 -
NullPointerException
- 如果指定的键为null并且此映射使用自然排序,或者其比较器不允许null键 - 从以下版本开始:
- 1.6
-
floorEntry
public Map.Entry<K,V> floorEntry(K key)
从界面复制的说明:NavigableMap
返回与小于或等于给定键的最大键关联的键 - 值映射,如果没有此键,则null
。- Specified by:
-
floorEntry
在界面NavigableMap<K,V>
- 参数
-
key
- 关键 - 结果
-
最大密钥小于或等于
key
,如果没有这样的密钥null
- 异常
-
ClassCastException
- 如果指定的密钥无法与地图中当前的密钥进行比较 -
NullPointerException
- 如果指定的键为null并且此映射使用自然顺序,或者其比较器不允许null键 - 从以下版本开始:
- 1.6
-
floorKey
public K floorKey(K key)
从界面复制的说明:NavigableMap
返回小于或等于给定键的最大键,如果没有这样的键,则null
。- Specified by:
-
floorKey
在界面NavigableMap<K,V>
- 参数
-
key
- 关键 - 结果
-
key
密钥小于或等于key
,如果没有这样的密钥null
- 异常
-
ClassCastException
- 如果指定的密钥无法与地图中当前的密钥进行比较 -
NullPointerException
- 如果指定的键为null并且此映射使用自然排序,或者其比较器不允许空键 - 从以下版本开始:
- 1.6
-
ceilingEntry
public Map.Entry<K,V> ceilingEntry(K key)
从界面复制的说明:NavigableMap
返回与大于或等于给定键的最小键关联的键 - 值映射,如果没有此键,则null
。- Specified by:
-
ceilingEntry
在界面NavigableMap<K,V>
- 参数
-
key
- 关键 - 结果
-
最小密钥大于或等于
key
,如果没有这样的密钥null
- 异常
-
ClassCastException
- 如果指定的密钥无法与地图中当前的密钥进行比较 -
NullPointerException
- 如果指定的键为null并且此映射使用自然顺序,或者其比较器不允许空键 - 从以下版本开始:
- 1.6
-
ceilingKey
public K ceilingKey(K key)
从界面复制的说明:NavigableMap
返回大于或等于给定键的null
键,如果没有这样的键,则null
。- Specified by:
-
ceilingKey
在界面NavigableMap<K,V>
- 参数
-
key
- 关键 - 结果
-
最小密钥大于或等于
key
,如果没有这样的密钥null
- 异常
-
ClassCastException
- 如果指定的密钥无法与地图中当前的密钥进行比较 -
NullPointerException
- 如果指定的键为null并且此映射使用自然排序,或者其比较器不允许null键 - 从以下版本开始:
- 1.6
-
higherEntry
public Map.Entry<K,V> higherEntry(K key)
从界面复制的说明:NavigableMap
返回与严格大于给定键的最小键关联的键值映射,如果没有此键,则null
。- Specified by:
-
higherEntry
在界面NavigableMap<K,V>
- 参数
-
key
- 关键 - 结果
-
最小密钥大于
key
的条目,如果没有这样的密钥null
- 异常
-
ClassCastException
- 如果指定的键无法与地图中当前的键进行比较 -
NullPointerException
- 如果指定的键为null并且此映射使用自然顺序,或者其比较器不允许null键 - 从以下版本开始:
- 1.6
-
higherKey
public K higherKey(K key)
从界面复制的说明:NavigableMap
返回严格大于给定键的最小键,如果没有这样的键,则返回null
。- Specified by:
-
higherKey
在界面NavigableMap<K,V>
- 参数
-
key
- 关键 - 结果
-
如果没有这样的密钥,则最小密钥大于
key
或null
- 异常
-
ClassCastException
- 如果指定的键无法与地图中当前的键进行比较 -
NullPointerException
- 如果指定的键为null并且此映射使用自然顺序,或者其比较器不允许null键 - 从以下版本开始:
- 1.6
-
keySet
public Set<K> keySet()
返回此映射中包含的键的Set
视图。set的迭代器按升序返回键。 该组的分裂器为late-binding , 快速失败 ,另外报告
Spliterator.SORTED
和Spliterator.ORDERED
,其遭遇顺序为升序键。 该spliterator的比较(见Spliterator.getComparator()
)为null
如果树映射的比较(见SortedMap.comparator()
)是null
。 否则,分裂器的比较器与树图的比较器相同或强加相同的总排序。该集由地图支持,因此对地图的更改将反映在集中,反之亦然。 如果在对集合进行迭代时修改了映射(除了通过迭代器自己的
remove
操作),迭代的结果是未定义的。 该组支持元件移除,即从映射中相应的映射,经由Iterator.remove
,Set.remove
,removeAll
,retainAll
,和clear
操作。 它不支持add
或addAll
操作。
-
navigableKeySet
public NavigableSet<K> navigableKeySet()
从界面复制的说明:NavigableMap
返回此映射中包含的键的NavigableSet
视图。 set的迭代器按升序返回键。 该集由地图支持,因此对地图的更改将反映在集中,反之亦然。 如果在对集合进行迭代时修改了映射(除了通过迭代器自己的remove
操作),迭代的结果是未定义的。 该组支持元件移除,即从映射中相应的映射,经由Iterator.remove
,Set.remove
,removeAll
,retainAll
,和clear
操作。 它不支持add
或addAll
操作。- Specified by:
-
navigableKeySet
在界面NavigableMap<K,V>
- 结果
- 此地图中键的可导航设置视图
- 从以下版本开始:
- 1.6
-
descendingKeySet
public NavigableSet<K> descendingKeySet()
从界面复制的说明:NavigableMap
返回此映射中包含的键的反向顺序NavigableSet
视图。 set的迭代器按降序返回键。 该集由地图支持,因此对地图的更改将反映在集中,反之亦然。 如果在对集合进行迭代时修改了映射(除了通过迭代器自己的remove
操作),迭代的结果是未定义的。 该组支持元件移除,即从映射中相应的映射,经由Iterator.remove
,Set.remove
,removeAll
,retainAll
,和clear
操作。 它不支持add
或addAll
操作。- Specified by:
-
descendingKeySet
在界面NavigableMap<K,V>
- 结果
- 此映射中键的反向可导航设置视图
- 从以下版本开始:
- 1.6
-
values
public Collection<V> values()
返回此映射中包含的值的Collection
视图。集合的迭代器以相应键的升序返回值。 该集合的分裂器是late-binding , 快速失败 ,另外报告
Spliterator.ORDERED
,其遭遇顺序是相应键的升序。该集合由地图支持,因此对地图的更改将反映在集合中,反之亦然。 如果在对集合进行迭代时修改了映射(除了通过迭代器自己的
remove
操作),迭代的结果是未定义的。 该collection支持元素移除,即从映射中相应的映射,经由Iterator.remove
,Collection.remove
,removeAll
,retainAll
和clear
操作。 它不支持add
或addAll
操作。
-
entrySet
public Set<Map.Entry<K,V>> entrySet()
返回此映射中包含的映射的Set
视图。set的迭代器以升序键顺序返回条目。 该组的分裂器为late-binding , 快速失败 ,另外报告
Spliterator.SORTED
和Spliterator.ORDERED
,其遭遇顺序为升序键。该集由地图支持,因此对地图的更改将反映在集中,反之亦然。 如果在对集合进行迭代时修改了映射(除了通过迭代器自己的
remove
操作,或者通过迭代器返回的映射条目上的setValue
操作),迭代的结果是未定义的。 该组支持元件移除,即从映射中相应的映射,经由Iterator.remove
,Set.remove
,removeAll
,retainAll
和clear
操作。 它不支持add
或addAll
操作。
-
descendingMap
public NavigableMap<K,V> descendingMap()
从界面复制的说明:NavigableMap
返回此映射中包含的映射的逆序视图。 降序地图由此地图支持,因此对地图的更改将反映在降序地图中,反之亦然。 如果在对任一映射的集合视图进行迭代时修改了任一映射(除非通过迭代器自己的remove
操作),则迭代的结果是未定义的。返回的地图的订购量等于
Collections.reverseOrder
(comparator())
。 表达式m.descendingMap().descendingMap()
返回m.descendingMap().descendingMap()
的视图,m
等效于m
。- Specified by:
-
descendingMap
在界面NavigableMap<K,V>
- 结果
- 此地图的逆序视图
- 从以下版本开始:
- 1.6
-
subMap
public NavigableMap<K,V> subMap(K fromKey, boolean fromInclusive, K toKey, boolean toInclusive)
从界面复制的说明:NavigableMap
返回此映射部分的视图,其键的范围为fromKey
到toKey
。 如果fromKey
和toKey
相等,则返回的映射为空,除非fromInclusive
和toInclusive
都为真。 返回的地图由此地图支持,因此返回的地图中的更改将反映在此地图中,反之亦然。 返回的地图支持此地图支持的所有可选地图操作。返回的映射将尝试在其范围之外插入键,或构造其端点位于其范围之外的子映射时抛出
IllegalArgumentException
。- Specified by:
-
subMap
在界面NavigableMap<K,V>
- 参数
-
fromKey
- 返回映射中键的低端点 -
fromInclusive
-true
如果true
低端点包含在返回的视图中 -
toKey
- 返回映射中键的高端点 -
toInclusive
-true
如果true
高端点包含在返回的视图中 - 结果
-
此地图部分的视图,其键范围为
fromKey
至toKey
- 异常
-
ClassCastException
- 如果fromKey
和toKey
无法使用此映射的比较器相互比较(或者,如果映射没有比较器,则使用自然顺序)。 如果无法将fromKey
或toKey
与当前映射中的键进行比较,则实现可能(但不是必须)抛出此异常。 -
NullPointerException
- 如果fromKey
或toKey
为null且此映射使用自然顺序,或其比较器不允许null键 -
IllegalArgumentException
- 如果fromKey
大于toKey
; 或者如果此地图本身具有受限范围,则fromKey
或toKey
位于范围的范围之外 - 从以下版本开始:
- 1.6
-
headMap
public NavigableMap<K,V> headMap(K toKey, boolean inclusive)
从界面复制的说明:NavigableMap
返回此映射的部分视图,其键小于(或等于,如果inclusive
为真)toKey
。 返回的地图由此地图支持,因此返回的地图中的更改将反映在此地图中,反之亦然。 返回的地图支持此地图支持的所有可选地图操作。返回的地图将尝试在其范围之外插入一个键时抛出
IllegalArgumentException
。- Specified by:
-
headMap
在界面NavigableMap<K,V>
- 参数
-
toKey
- 返回映射中键的高端点 -
inclusive
-true
如果true
高端点包含在返回的视图中 - 结果
-
此地图部分的视图,其键小于(或等于,如果
inclusive
为真)toKey
- 异常
-
ClassCastException
- 如果toKey
与此映射的比较器不兼容(或者,如果映射没有比较器,则toKey
未实现Comparable
)。 如果无法将toKey
与当前映射中的键进行比较,则实现可能(但不是必须)抛出此异常。 -
NullPointerException
- 如果toKey
为null且此映射使用自然排序,或者其比较器不允许null键 -
IllegalArgumentException
- 如果此地图本身具有受限范围,并且toKey
位于范围的范围之外 - 从以下版本开始:
- 1.6
-
tailMap
public NavigableMap<K,V> tailMap(K fromKey, boolean inclusive)
从界面复制的说明:NavigableMap
返回此映射的部分视图,其键大于(或等于,如果inclusive
为真)fromKey
。 返回的地图由此地图支持,因此返回的地图中的更改将反映在此地图中,反之亦然。 返回的地图支持此地图支持的所有可选地图操作。返回的地图将尝试在其范围之外插入一个键时抛出
IllegalArgumentException
。- Specified by:
-
tailMap
在界面NavigableMap<K,V>
- 参数
-
fromKey
- 返回映射中键的低端点 -
inclusive
-true
如果true
低端点包含在返回的视图中 - 结果
-
此地图部分的视图,其键大于(或等于,如果
inclusive
为真)fromKey
- 异常
-
ClassCastException
- 如果fromKey
与此映射的比较器不兼容(或者,如果映射没有比较器,则fromKey
未实现Comparable
)。 如果无法将fromKey
与当前映射中的键进行比较,则实现可能(但不是必须)抛出此异常。 -
NullPointerException
- 如果fromKey
为null且此映射使用自然顺序,或其比较器不允许null键 -
IllegalArgumentException
- 如果此地图本身具有受限范围,并且fromKey
位于范围的范围之外 - 从以下版本开始:
- 1.6
-
subMap
public SortedMap<K,V> subMap(K fromKey, K toKey)
从界面复制的说明:NavigableMap
返回此映射部分的视图,其键的范围从fromKey
(包括toKey
)到toKey
(独占)。 (如果fromKey
和toKey
相等,则返回的地图为空。)返回的地图由此地图支持,因此返回的地图中的更改将反映在此地图中,反之亦然。 返回的地图支持此地图支持的所有可选地图操作。返回的地图将尝试在其范围之外插入一个键时抛出
IllegalArgumentException
。相当于
subMap(fromKey, true, toKey, false)
。- Specified by:
-
subMap
在界面NavigableMap<K,V>
- Specified by:
-
subMap
接口SortedMap<K,V>
- 参数
-
fromKey
- 返回映射中键的低端点(包括) -
toKey
- 返回映射中键的高端点(独占) - 结果
-
此地图部分的视图,其键的范围从
fromKey
(含),到toKey
,独家 - 异常
-
ClassCastException
- 如果fromKey
和toKey
无法使用此映射的比较器相互比较(或者,如果映射没有比较器,则使用自然排序)。 如果无法将fromKey
或toKey
与当前映射中的键进行比较,则实现可能(但不是必须)抛出此异常。 -
NullPointerException
- 如果fromKey
或toKey
为null且此映射使用自然排序,或其比较器不允许null键 -
IllegalArgumentException
- 如果fromKey
大于toKey
; 或者如果此地图本身具有受限范围,则fromKey
或toKey
位于范围的范围之外
-
headMap
public SortedMap<K,V> headMap(K toKey)
从界面复制的说明:NavigableMap
返回此映射部分的视图,其键严格小于toKey
。 返回的地图由此地图支持,因此返回的地图中的更改将反映在此地图中,反之亦然。 返回的地图支持此地图支持的所有可选地图操作。返回的映射将尝试在其范围之外插入键时抛出
IllegalArgumentException
。相当于
headMap(toKey, false)
。- Specified by:
-
headMap
在界面NavigableMap<K,V>
- Specified by:
-
headMap
在界面SortedMap<K,V>
- 参数
-
toKey
- 返回映射中键的高端点(独占) - 结果
-
此地图部分的视图,其键严格小于
toKey
- 异常
-
ClassCastException
- 如果toKey
与此映射的比较器不兼容(或者,如果映射没有比较器,则toKey
未实现Comparable
)。 如果无法将toKey
与当前映射中的键进行比较,则实现可能(但不是必须)抛出此异常。 -
NullPointerException
- 如果toKey
为null且此映射使用自然排序,或者其比较器不允许null键 -
IllegalArgumentException
- 如果此地图本身具有受限范围,并且toKey
位于范围的范围之外
-
tailMap
public SortedMap<K,V> tailMap(K fromKey)
从界面复制的说明:NavigableMap
返回此映射的部分视图,其键大于或等于fromKey
。 返回的地图由此地图支持,因此返回的地图中的更改将反映在此地图中,反之亦然。 返回的地图支持此地图支持的所有可选地图操作。返回的地图将尝试在其范围之外插入密钥时抛出
IllegalArgumentException
。相当于
tailMap(fromKey, true)
。- Specified by:
-
tailMap
在界面NavigableMap<K,V>
- Specified by:
-
tailMap
在界面SortedMap<K,V>
- 参数
-
fromKey
- 返回映射中键的低端点(包括) - 结果
-
此映射的部分视图,其键大于或等于
fromKey
- 异常
-
ClassCastException
- 如果fromKey
与此映射的比较器不兼容(或者,如果映射没有比较器,则fromKey
未实现Comparable
)。 如果无法将fromKey
与当前映射中的键进行比较,则实现可能(但不是必须)抛出此异常。 -
NullPointerException
- 如果fromKey
为null且此映射使用自然排序,或其比较器不允许null键 -
IllegalArgumentException
- 如果此地图本身具有受限范围,并且fromKey
位于范围的范围之外
-
-