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, sizeComparator<? 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.