public interface SortedMap
implements Map<K, V>
java.util.SortedMap<K, V> |
Known Indirect Subclasses
|
一个Map
,进一步提供了其密钥的总排序 。 该地图是根据有序natural ordering其密钥,或通过Comparator
通常在有序映射创建时提供。 遍历有序映射的集合视图(由返回时,这个顺序反映entrySet
, keySet
和values
方法)。 提供了几个额外的操作来利用排序。 (该界面是SortedSet
的地图模拟。)
所有插入有序映射的键都必须实现Comparable
接口(或被指定的比较器接受)。 此外,所有这些密钥必须可以相互比较 : k1.compareTo(k2)
(或comparator.compare(k1, k2)
)不得为排序映射中的任何密钥k1
和k2
抛出ClassCastException
。 尝试违反此限制会导致违规方法或构造函数调用抛出ClassCastException
。
请注意,如果排序映射要正确实现Map
接口,则排序映射(无论是否提供显式比较器)维护的排序必须与equals保持一致 。 (请参见Comparable
接口或Comparator
接口以获得与equals相一致的精确定义。)这是因为Map
接口是根据equals
操作定义的,但排序映射使用其compareTo
(或compare
)方法执行所有关键比较,因此,从排序映射的角度来看,这种方法认为相同的两个键是相等的。 即使排序与等号不一致,树图的行为也是明确定义的; 它只是不服从Map
接口的总体合同。
所有通用的排序映射实现类都应该提供四个“标准”构造函数。 虽然所需的构造函数不能由接口指定,但不可能强制执行此建议。 所有排序映射实现的预期“标准”构造函数是:
Comparator
, which creates an empty sorted map sorted according to the specified comparator.Map
, which creates a new map with the same key-value mappings as its argument, sorted according to the keys' natural ordering.SortedMap
, which creates a new sorted map with the same key-value mappings and the same ordering as the input sorted map.注意 :有几种方法会返回具有受限密钥范围的子图。 这样的范围是半开放的 ,即它们包括它们的低端点,但不包括它们的高端点(如果适用)。 如果您需要一个封闭范围 (其中包括两个端点),并且密钥类型允许计算给定密钥的后继,则仅请求从lowEndpoint
到successor(highEndpoint)
的子范围。 例如,假设m
是键是字符串的映射。 以下习惯m
获得一个视图,其中包含m
中的所有键值映射,其键值在low
和high
之间,包括:
SortedMap<String, V> sub = m.subMap(low, high+"\0");A similar technique can be used to generate an open range (which contains neither endpoint). The following idiom obtains a view containing all of the key-value mappings in
m
whose keys are between
low
and
high
, exclusive:
SortedMap<String, V> sub = m.subMap(low+"\0", high);
该界面是 Java Collections Framework的成员。
Public methods |
|
---|---|
abstract Comparator<? super K> |
comparator() 返回用于为了在这个映射中的键,或比较 |
abstract Set<Entry<K, V>> |
entrySet() 返回此映射中映射的映射的 |
abstract K |
firstKey() 返回此地图中当前第一个(最低)的键。 |
abstract SortedMap<K, V> |
headMap(K toKey) 返回此映射的关键字严格小于 |
abstract Set<K> |
keySet() 返回包含在此映射中的键的 |
abstract K |
lastKey() 返回此地图中当前最后一个(最高)的键。 |
abstract SortedMap<K, V> |
subMap(K fromKey, K toKey) 返回此映射部分的视图,其键的范围从 |
abstract SortedMap<K, V> |
tailMap(K fromKey) 返回此映射的关键字大于或等于 |
abstract Collection<V> |
values() 返回此映射中包含的值的 |
Inherited methods |
|
---|---|
From interface java.util.Map
|
Comparator<? super K> comparator ()
返回用于为了在这个映射中的键,或比较 null
如果此映射使用 natural ordering它的键。
Returns | |
---|---|
Comparator<? super K> |
the comparator used to order the keys in this map, or null if this map uses the natural ordering of its keys |
Set<Entry<K, V>> entrySet ()
返回此映射中映射的映射的Set
视图。 该集的迭代器按照升序键顺序返回条目。 该集合由地图支持,因此对地图的更改反映在集合中,反之亦然。 如果在对集合进行迭代时修改了映射(除了通过迭代器自己的remove
操作或通过迭代器返回的映射条目上的setValue
操作),迭代结果未定义。 该组支持元件移除,即从映射中相应的映射,经由Iterator.remove
, Set.remove
, removeAll
, retainAll
和clear
操作。 它不支持add
或addAll
操作。
Returns | |
---|---|
Set<Entry<K, V>> |
a set view of the mappings contained in this map, sorted in ascending key order |
K firstKey ()
返回此地图中当前第一个(最低)的键。
Returns | |
---|---|
K |
the first (lowest) key currently in this map |
Throws | |
---|---|
NoSuchElementException |
if this map is empty |
SortedMap<K, V> headMap (K toKey)
返回此映射的关键字严格小于toKey
的部分的视图。 返回的地图由此地图支持,因此返回地图中的更改会反映在此地图中,反之亦然。 返回的地图支持该地图支持的所有可选地图操作。
返回的映射将抛出 IllegalArgumentException
上试图范围之外插入一个关键。
Parameters | |
---|---|
toKey |
K : high endpoint (exclusive) of the keys in the returned map |
Returns | |
---|---|
SortedMap<K, V> |
a view of the portion of this map whose keys are strictly less than toKey |
Throws | |
---|---|
ClassCastException |
if toKey is not compatible with this map's comparator (or, if the map has no comparator, if toKey does not implement Comparable ). Implementations may, but are not required to, throw this exception if toKey cannot be compared to keys currently in the map. |
NullPointerException |
if toKey is null and this map does not permit null keys |
IllegalArgumentException |
if this map itself has a restricted range, and toKey lies outside the bounds of the range |
Set<K> keySet ()
返回此映射中包含的键的Set
视图。 集合的迭代器按照升序返回键。 该集合由地图支持,因此对地图的更改反映在集合中,反之亦然。 如果在对集合进行迭代的过程中修改了映射(除了通过迭代器自己的remove
操作),迭代的结果是未定义的。 该组支持元件移除,即从映射中相应的映射,经由Iterator.remove
, Set.remove
, removeAll
, retainAll
,和clear
操作。 它不支持add
或addAll
操作。
Returns | |
---|---|
Set<K> |
a set view of the keys contained in this map, sorted in ascending order |
K lastKey ()
返回此地图中当前最后一个(最高)的键。
Returns | |
---|---|
K |
the last (highest) key currently in this map |
Throws | |
---|---|
NoSuchElementException |
if this map is empty |
SortedMap<K, V> subMap (K fromKey, K toKey)
返回此映射部分的视图,其键范围从fromKey
(含),至toKey
(不包括)。 (如果fromKey
和toKey
相等,则返回的地图是空的。)返回的地图由此地图支持,因此返回的地图中的更改会反映在此地图中,反之亦然。 返回的地图支持该地图支持的所有可选地图操作。
返回的地图会尝试在其范围外插入密钥,尝试执行 IllegalArgumentException
。
Parameters | |
---|---|
fromKey |
K : low endpoint (inclusive) of the keys in the returned map |
toKey |
K : high endpoint (exclusive) of the keys in the returned map |
Returns | |
---|---|
SortedMap<K, V> |
a view of the portion of this map whose keys range from fromKey , inclusive, to toKey , exclusive |
Throws | |
---|---|
ClassCastException |
if fromKey and toKey cannot be compared to one another using this map's comparator (or, if the map has no comparator, using natural ordering). Implementations may, but are not required to, throw this exception if fromKey or toKey cannot be compared to keys currently in the map. |
NullPointerException |
if fromKey or toKey is null and this map does not permit null keys |
IllegalArgumentException |
if fromKey is greater than toKey ; or if this map itself has a restricted range, and fromKey or toKey lies outside the bounds of the range |
SortedMap<K, V> tailMap (K fromKey)
返回此映射的关键字大于或等于fromKey
的部分视图。 返回的地图由此地图支持,因此返回地图中的更改会反映在此地图中,反之亦然。 返回的地图支持该地图支持的所有可选地图操作。
返回的地图将尝试在其范围外插入密钥时尝试输入 IllegalArgumentException
。
Parameters | |
---|---|
fromKey |
K : low endpoint (inclusive) of the keys in the returned map |
Returns | |
---|---|
SortedMap<K, V> |
a view of the portion of this map whose keys are greater than or equal to fromKey |
Throws | |
---|---|
ClassCastException |
if fromKey is not compatible with this map's comparator (or, if the map has no comparator, if fromKey does not implement Comparable ). Implementations may, but are not required to, throw this exception if fromKey cannot be compared to keys currently in the map. |
NullPointerException |
if fromKey is null and this map does not permit null keys |
IllegalArgumentException |
if this map itself has a restricted range, and fromKey lies outside the bounds of the range |
Collection<V> values ()
返回此映射中包含的值的Collection
视图。 集合的迭代器按相应键的升序返回值。 该集合由地图支持,因此地图的更改会反映在集合中,反之亦然。 如果在迭代集合的过程中修改了映射(除了通过迭代器自己的remove
操作),迭代的结果是未定义的。 该collection支持元素移除,即从映射中相应的映射,经由Iterator.remove
, Collection.remove
, removeAll
, retainAll
和clear
操作。 它不支持add
或addAll
操作。
Returns | |
---|---|
Collection<V> |
a collection view of the values contained in this map, sorted in ascending key order |