-
- 参数类型
-
K
- 由此地图维护的键的类型 -
V
- 映射值的类型
- All Superinterfaces:
-
Map<K,V>
- All Known Subinterfaces:
-
ConcurrentNavigableMap<K,V>
,NavigableMap<K,V>
- 所有已知实现类:
-
ConcurrentSkipListMap
,TreeMap
public interface SortedMap<K,V> extends Map<K,V>
AMap
进一步提供其键上的总排序 。 该地图是根据有序natural ordering其密钥,或通过Comparator
通常在有序映射创建时提供。 遍历有序映射的集合视图(由返回时,这个顺序反映entrySet
,keySet
和values
方法)。 提供了几个额外的操作来利用订购。 (此界面是SortedSet
的地图模拟。)插入分拣地图的所有键必须实现
Comparable
接口(或被指定的比较器接受)。 另外,所有这些键必须是可互相比较的 :k1.compareTo(k2)
(或comparator.compare(k1, k2)
)不得抛出ClassCastException
任何键k1
和k2
在分类图。 尝试违反此限制将导致违规方法或构造函数调用抛出一个ClassCastException
。请注意,如果排序的映射要正确实现
Map
接口,由排序映射维护的排序(是否提供显式比较器)必须与equals一致 。 (见Comparable
接口或Comparator
接口,用于与等于一致的精确定义)这是因为Map
接口是根据equals
操作定义的,但是排序映射使用其compareTo
(或compare
)方法执行所有密钥比较因此,从排序图的角度来看,通过这种方法认为相等的两个关键字是相等的。 树图的行为是明确的,即使它的排序与equals不一致; 它只是不符合Map
接口的总体合同。所有通用排序映射实现类应提供四个“标准”构造函数。 无法通过接口指定必要的构造函数来执行此建议。 所有排序地图实现的预期“标准”构造函数是:
- 一个void(无参数)构造函数,它创建一个根据其键的自然顺序排序的空排序映射。
- 具有
Comparator
类型的单个参数的构造函数,它创建根据指定的比较器排序的空的排序映射。 - 一个具有类型为
Map
的单个参数的构造函数,它创建一个与其参数具有相同键值映射的新映射,根据密钥的自然排序进行排序。 - 一个具有类型为
SortedMap
的单个参数的构造函数,它创建一个具有相同键值映射和与输入排序映射相同顺序的新的排序映射。
注意 :几个方法返回带有限制键范围的子图。 这种范围是半开放的 ,也就是说,它们包括其低端点,但不包括其高端点(如适用)。 如果您需要一个封闭的范围 (包括两个端点),并且键类型允许计算给定键的后继,只需要从
lowEndpoint
到successor(highEndpoint)
的子范围。 例如,假设m
是其键是字符串的地图。 以下成语获得包含m
中所有键值映射的m
其关键在low
和high
之间,包括:SortedMap<String, V> sub = m.subMap(low, high+"\0");
可以使用类似的技术来生成开放范围 (其不包含端点)。 以下成语获得包含m
中所有键值映射的m
其关键在low
和high
之间,独占:SortedMap<String, V> sub = m.subMap(low+"\0", high);
此接口是Java Collections Framework的成员。
- 从以下版本开始:
- 1.2
- 另请参见:
-
Map
,TreeMap
,SortedSet
,Comparator
,Comparable
,Collection
,ClassCastException
-
-
方法摘要
所有方法 接口方法 抽象方法 Modifier and Type 方法 描述 Comparator<? super K>
comparator()
返回用于为了在这个映射中的键,或比较null
如果此映射使用natural ordering它的键。Set<Map.Entry<K,V>>
entrySet()
返回此地图中包含的映射的Set
视图。K
firstKey()
返回此地图中当前的第一个(最低)键。SortedMap<K,V>
headMap(K toKey)
返回该地图的部分密钥严格小于toKey
。Set<K>
keySet()
返回此地图中包含的键的Set
视图。K
lastKey()
返回当前在此地图中的最后(最高)键。SortedMap<K,V>
subMap(K fromKey, K toKey)
返回此地图部分的视图,其关键字范围从fromKey
(含)到toKey
,独占。SortedMap<K,V>
tailMap(K fromKey)
返回此地图部分的视图,其键大于或等于fromKey
。Collection<V>
values()
返回此地图中包含的值的Collection
视图。-
Methods inherited from interface java.util.Map
clear, compute, computeIfAbsent, computeIfPresent, containsKey, containsValue, entry, equals, forEach, get, getOrDefault, hashCode, isEmpty, merge, of, of, of, of, of, of, of, of, of, of, of, ofEntries, put, putAll, putIfAbsent, remove, remove, replace, replace, replaceAll, size
-
-
-
-
方法详细信息
-
comparator
Comparator<? super K> comparator()
返回用于为了在这个映射中的键,或比较null
如果此映射使用natural ordering它的键。- 结果
-
比较器用于订购该地图中的按键,或
null
如果该地图使用其键的自然排序
-
subMap
SortedMap<K,V> subMap(K fromKey, K toKey)
返回此地图部分的视图,其关键字范围从fromKey
(含)到toKey
,独占。 (如果fromKey
和toKey
相等,则返回的地图为空。)返回的地图由该地图支持,因此返回的地图中的更改将反映在该地图中,反之亦然。 返回的地图支持该地图支持的所有可选地图操作。返回的地图将抛出一个
IllegalArgumentException
,试图在其范围之外插入一个键。- 参数
-
fromKey
- 返回地图中键的低端点(含) -
toKey
- 返回地图中的键的高端点(独占) - 结果
-
该地图的部分视图,其键的范围从
fromKey
(含)到toKey
,独占 - 异常
-
ClassCastException
- 如果fromKey
和toKey
不能使用该地图的比较器相互比较(或者,如果地图没有比较器,则使用自然排序)。 如果fromKey
或toKey
无法与当前在地图中的键进行比较,则实施可能但不是必须抛出此异常。 -
NullPointerException
- 如果fromKey
或toKey
为空,并且此映射不允许空键 -
IllegalArgumentException
- 如果fromKey
大于toKey
; 或者如果该地图本身具有限制范围,并且fromKey
或toKey
位于范围的界限之外
-
headMap
SortedMap<K,V> headMap(K toKey)
返回该地图的部分密钥严格小于toKey
。 返回的地图由此地图支持,因此返回的地图中的更改将反映在该地图中,反之亦然。 返回的地图支持该地图支持的所有可选地图操作。返回的地图将抛出一个
IllegalArgumentException
,试图在其范围之外插入一个键。- 参数
-
toKey
- 返回地图中的键的高端点(独占) - 结果
-
该地图的部分密钥严格小于
toKey
- 异常
-
ClassCastException
- 如果toKey
与此映射的比较器不兼容(或者,如果映射没有比较器,如果toKey
不实现Comparable
)。 如果toKey
无法与当前在地图中的键进行比较,则实施可能但不是必须抛出此异常。 -
NullPointerException
- 如果toKey
为空,并且此映射不允许空值 -
IllegalArgumentException
- 如果该地图本身有限制范围,并且toKey
位于范围界限之外
-
tailMap
SortedMap<K,V> tailMap(K fromKey)
返回此地图部分的视图,其键大于或等于fromKey
。 返回的地图由此地图支持,因此返回的地图中的更改将反映在该地图中,反之亦然。 返回的地图支持该地图支持的所有可选地图操作。返回的地图将会
IllegalArgumentException
一个IllegalArgumentException
,试图在其范围之外插入一个键。- 参数
-
fromKey
- 返回地图中的键的低端点(含) - 结果
-
该地图的部分的视图,其键大于或等于
fromKey
- 异常
-
ClassCastException
- 如果fromKey
与此映射的比较器不兼容(或者,如果映射没有比较器,如果fromKey
不实现Comparable
)。 如果fromKey
无法与当前在地图中的键进行比较,则实施可能但不是必须抛出此异常。 -
NullPointerException
- 如果fromKey
为空,并且此映射不允许空值 -
IllegalArgumentException
- 如果该地图本身有限制范围,并且fromKey
位于范围界限之外
-
firstKey
K firstKey()
返回此地图中当前的第一个(最低)键。- 结果
- 当前在此地图中的第一(最低)键
- 异常
-
NoSuchElementException
- 如果这张地图是空的
-
lastKey
K lastKey()
返回当前在此地图中的最后(最高)键。- 结果
- 当前在此地图中的最后(最高)键
- 异常
-
NoSuchElementException
- 如果此地图为空
-
keySet
Set<K> keySet()
返回此地图中包含的键的Set
视图。 该集合的迭代器按升序返回密钥。 该集合由地图支持,因此对地图的更改将反映在集合中,反之亦然。 如果在集合中的迭代正在进行中修改映射(除了通过迭代器自己的remove
操作),迭代的结果是未定义的。 该组支持元件移除,即从映射中相应的映射,经由Iterator.remove
,Set.remove
,removeAll
,retainAll
,和clear
操作。 它不支持add
或addAll
操作。
-
values
Collection<V> values()
返回此地图中包含的值的Collection
视图。 集合的迭代器按照相应键的升序返回值。 集合由地图支持,因此对地图的更改将反映在集合中,反之亦然。 如果在集合中的迭代正在进行中修改映射(除了通过迭代器自己的remove
操作),迭代的结果是未定义的。 该collection支持元素移除,即从映射中相应的映射,经由Iterator.remove
,Collection.remove
,removeAll
,retainAll
和clear
操作。 它不支持add
或addAll
操作。
-
-