K
-钥匙的Map保持型
V
-映射的值的类型
public interface SortedMap<K,V> extends Map<K,V>
Map
进一步提供了关键的全序。Map是按它的键
natural ordering,或由
Comparator
通常设置在Map的创建时间排序。这种秩序体现在迭代的排序图的集合视图(由
entrySet
,
keySet
和
values
方法返回)。提供了一些额外的操作以利用排序。(此接口是
SortedSet
。Map模拟)
所有的钥匙插入排序图上必须实现Comparable
接口(或由指定的比较器接受)。此外,所有钥匙必须相互比较:k1.compareTo(k2)
(或comparator.compare(k1, k2)
)必须不把任何一个键k1
和k2
在排序图ClassCastException
。企图违反此限制将导致犯罪的方法或构造函数调用扔ClassCastException
。
请注意,排序的排序图保持(是否提供一个明确的比较器)必须符合等于如果排序图是正确执行Map
接口。(见Comparable
接口或Comparator
接口符合平等的。一个精确的定义)这是因为Map
接口在equals
操作定义,但排序图上执行所有关键的比较使用compareTo
(或compare
)方法,所以两个键被视为平等的方法是,从的排序图来看,平等。即使它的顺序是不等于树映射的行为是明确的;它只是不服从的Map
接口一般合同。
所有通用的排序映射实现类应提供四个“标准”构造函数。这是不可能执行此建议,但作为所需的构造函数不能被指定的接口。所有已排序的Map实现的预期的“标准”构造函数是:
Comparator
构造函数,创建一个空的排序图按指定的比较器。Map
构造函数,创建具有相同键的值映射为论证新的Map,根据键的自然顺序排序。SortedMap
构造函数,创建一个新的排序图具有相同键值的映射和命令输入排序图相同。注:几种方法返回的限制范围的子图的关键。这样的范围是半开放的,也就是说,他们包括他们的低端点,但不是他们的高端点(适用)。如果你需要一个封闭的范围内(包括端点),和关键类型允许计算继承一个给定的关键,仅仅从lowEndpoint
到successor(highEndpoint)
请求子。例如,假设m
是Map的钥匙串。下列成语获得视图包含所有在m
的钥匙low
和high
之间的关键值的映射,包括:
<字符串> 建模,V子= m.submap(低,高+“0”); 字符串>类似的技术可以被用来产生一个开放的范围(即不含端点)。下列成语获得视图包含所有在
m
的钥匙
low
和
high
,独家之间的关键值的映射:
<字符串> 建模,V子= m.submap(低+“0”,高); 字符串>
该接口的 Java Collections Framework成员。
Map
,
TreeMap
,
SortedSet
,
Comparator
,
Comparable
,
Collection
,
ClassCastException
Modifier and Type | Method and Description |
---|---|
Comparator<? super K> |
comparator()
返回用于秩序在这个Map钥匙的比较器,或
null 如果这个Map使用其密钥的
natural ordering。
|
Set<Map.Entry<K,V>> |
entrySet()
返回一个
Set 映射的视图包含在这个Map。
|
K |
firstKey()
返回当前在该Map中的第一个(最低)键。
|
SortedMap<K,V> |
headMap(K toKey)
返回从这个Map的关键是严格小于
toKey 部分。
|
Set<K> |
keySet()
返回一个
Set 查看键包含在这个Map。
|
K |
lastKey()
返回当前在该Map中的最后(最高)键。
|
SortedMap<K,V> |
subMap(K fromKey, K toKey)
返回从这个Map的键范围从
fromKey ,包容的部分
toKey ,独家。
|
SortedMap<K,V> |
tailMap(K fromKey)
返回从这个Map的关键是大于或等于
fromKey 部分。
|
Collection<V> |
values()
返回一个
Collection 的价值观包含在这个Map。
|
clear, compute, computeIfAbsent, computeIfPresent, containsKey, containsValue, equals, forEach, get, getOrDefault, hashCode, isEmpty, merge, put, putAll, putIfAbsent, remove, remove, replace, replace, replaceAll, size
Comparator<? super K> comparator()
null
如果这个Map使用其密钥的
natural ordering。
null
如果这个Map使用的键的自然顺序
SortedMap<K,V> subMap(K fromKey, K toKey)
fromKey
,包容,对
toKey
部分,独家。(如果
fromKey
和
toKey
相等,返回Map是空的。)返回的Map由Map的支持,所以在返回的Map变化都反映在这张Map上,反之亦然。返回的Map支持这张Map支持的所有可选的Map操作。
返回的Map将把企图把钥匙插在其范围内的IllegalArgumentException
。
fromKey
低端点(含)返回的映射中的键
toKey
高端点(独家)返回的映射中的键
fromKey
,包容的部分
toKey
,独家
ClassCastException
-如果
fromKey
和
toKey
不能与另一个使用这个Map的比较器(或者,如果Map没有比较器,采用自然排序)。实现可能,但不是必需的,如果
fromKey
或
toKey
不能相比,目前在Map键抛出该异常。
NullPointerException
-如果
fromKey
或
toKey
是无效的,这张Map不允许null键
IllegalArgumentException
-如果
fromKey
大于
toKey
;或者如果这Map本身有一个限制的范围内,和
fromKey
或
toKey
超出范围的界限
SortedMap<K,V> headMap(K toKey)
toKey
部分。返回的Map由Map的支持,所以在返回的Map变化都反映在这张Map上,反之亦然。返回的Map支持这张Map支持的所有可选的Map操作。
返回的Map将把企图把钥匙插在其范围内的IllegalArgumentException
。
toKey
高端点(独家)返回的映射中的键
toKey
部分
ClassCastException
-如果
toKey
不是这个Map的比较器兼容的(或者,如果Map没有比较,如果
toKey
不实现
Comparable
)。实现可能,但不是必需的,如果
toKey
不能相比,目前在Map键抛出该异常。
toKey
NullPointerException
是无效的,这张Map不允许null键
IllegalArgumentException
-如果这Map本身有一个限制的范围内,和
toKey
超出范围的界限
SortedMap<K,V> tailMap(K fromKey)
fromKey
部分。返回的Map是由这张Map的支持,所以在返回的Map的变化反映在这张Map上,反之亦然。返回的Map支持这张Map支持的所有可选的Map操作。
返回的Map将把企图把钥匙插在其范围内的IllegalArgumentException
。
fromKey
低端点(含)返回的映射中的键
fromKey
部分
ClassCastException
-如果
fromKey
不是这个Map的比较器兼容的(或者,如果Map没有比较,如果
fromKey
不实现
Comparable
)。实现可能,但不是必需的,如果
fromKey
不能相比,目前在Map键抛出该异常。
fromKey
NullPointerException
是无效的,这张Map不允许null键
IllegalArgumentException
-如果这Map本身有一个限制的范围内,和
fromKey
超出范围的界限
K firstKey()
NoSuchElementException
-如果这Map是空的
K lastKey()
NoSuchElementException
-如果这Map是空的
Set<K> keySet()
Set
查看键包含在这个Map。该集合的迭代器以提升顺序返回键。该集合是由Map的支持,所以对Map的变化反映在集合中,反之亦然。如果Map是在设置一个迭代过程中修改(除非通过迭代器的
remove
操作),迭代的结果是不确定的。设置支持元素的去除,从Map中移除相应的映射,通过
Iterator.remove
,
Set.remove
,
removeAll
,
retainAll
,和
clear
操作。它不支持
add
或
addAll
操作。
Collection<V> values()
Collection
视图的值包含在这个Map。集合的迭代器返回相应键的上升顺序的值。集合是由Map支持的,所以对Map的变化反映在集合中,反之亦然。如果Map是在集合的迭代进行修改(除非通过迭代器的
remove
操作),迭代的结果是不确定的。收集支持元素的去除,从Map中移除相应的映射,通过
Iterator.remove
,
Collection.remove
,
removeAll
,
retainAll
和
clear
操作。它不支持
add
或
addAll
操作。
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.