Most visited

Recently visited

Added in API level 1

SortedMap

public interface SortedMap
implements Map<K, V>

java.util.SortedMap<K, V>
Known Indirect Subclasses


一个Map ,进一步提供了其密钥的总排序 该地图是根据有序natural ordering其密钥,或通过Comparator通常在有序映射创建时提供。 遍历有序映射的集合视图(由返回时,这个顺序反映entrySetkeySetvalues方法)。 提供了几个额外的操作来利用排序。 (该界面是SortedSet的地图模拟。)

所有插入有序映射的键都必须实现Comparable接口(或被指定的比较器接受)。 此外,所有这些密钥必须可以相互比较k1.compareTo(k2) (或comparator.compare(k1, k2) )不得为排序映射中的任何密钥k1k2抛出ClassCastException 尝试违反此限制会导致违规方法或构造函数调用抛出ClassCastException

请注意,如果排序映射要正确实现Map接口,则排序映射(无论是否提供显式比较器)维护的排序必须与equals保持一致 (请参见Comparable接口或Comparator接口以获得与equals相一致的精确定义。)这是因为Map接口是根据equals操作定义的,但排序映射使用其compareTo (或compare )方法执行所有关键比较,因此,从排序映射的角度来看,这种方法认为相同的两个键是相等的。 即使排序与等号不一致,树图的行为也是明确定义的; 它只是不服从Map接口的总体合同。

所有通用的排序映射实现类都应该提供四个“标准”构造函数。 虽然所需的构造函数不能由接口指定,但不可能强制执行此建议。 所有排序映射实现的预期“标准”构造函数是:

  1. A void (no arguments) constructor, which creates an empty sorted map sorted according to the natural ordering of its keys.
  2. A constructor with a single argument of type Comparator, which creates an empty sorted map sorted according to the specified comparator.
  3. A constructor with a single argument of type Map, which creates a new map with the same key-value mappings as its argument, sorted according to the keys' natural ordering.
  4. A constructor with a single argument of type SortedMap, which creates a new sorted map with the same key-value mappings and the same ordering as the input sorted map.

注意 :有几种方法会返回具有受限密钥范围的子图。 这样的范围是半开放的 ,即它们包括它们的低端点,但不包括它们的高端点(如果适用)。 如果您需要一个封闭范围 (其中包括两个端点),并且密钥类型允许计算给定密钥的后继,则仅请求从lowEndpointsuccessor(highEndpoint)的子范围。 例如,假设m是键是字符串的映射。 以下习惯m获得一个视图,其中包含m中的所有键值映射,其键值在lowhigh之间,包括:

   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的成员。

也可以看看:

Summary

Public methods

abstract Comparator<? super K> comparator()

返回用于为了在这个映射中的键,或比较 null如果此映射使用 natural ordering它的键。

abstract Set<Entry<K, V>> entrySet()

返回此映射中映射的映射的 Set视图。

abstract K firstKey()

返回此地图中当前第一个(最低)的键。

abstract SortedMap<K, V> headMap(K toKey)

返回此映射的关键字严格小于 toKey的部分的视图。

abstract Set<K> keySet()

返回包含在此映射中的键的 Set视图。

abstract K lastKey()

返回此地图中当前最后一个(最高)的键。

abstract SortedMap<K, V> subMap(K fromKey, K toKey)

返回此映射部分的视图,其键的范围从 fromKey (含)到 toKey (不包括)。

abstract SortedMap<K, V> tailMap(K fromKey)

返回此映射的关键字大于或等于 fromKey的部分的视图。

abstract Collection<V> values()

返回此映射中包含的值的 Collection视图。

Inherited methods

From interface java.util.Map

Public methods

comparator

Added in API level 1
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

entrySet

Added in API level 24
Set<Entry<K, V>> entrySet ()

返回此映射中映射的映射的Set视图。 该集的迭代器按照升序键顺序返回条目。 该集合由地图支持,因此对地图的更改反映在集合中,反之亦然。 如果在对集合进行迭代时修改了映射(除了通过迭代器自己的remove操作或通过迭代器返回的映射条目上的setValue操作),迭代结果未定义。 该组支持元件移除,即从映射中相应的映射,经由Iterator.removeSet.removeremoveAllretainAllclear操作。 它不支持addaddAll操作。

Returns
Set<Entry<K, V>> a set view of the mappings contained in this map, sorted in ascending key order

firstKey

Added in API level 1
K firstKey ()

返回此地图中当前第一个(最低)的键。

Returns
K the first (lowest) key currently in this map
Throws
NoSuchElementException if this map is empty

headMap

Added in API level 1
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

keySet

Added in API level 24
Set<K> keySet ()

返回此映射中包含的键的Set视图。 集合的迭代器按照升序返回键。 该集合由地图支持,因此对地图的更改反映在集合中,反之亦然。 如果在对集合进行迭代的过程中修改了映射(除了通过迭代器自己的remove操作),迭代的结果是未定义的。 该组支持元件移除,即从映射中相应的映射,经由Iterator.removeSet.removeremoveAllretainAll ,和clear操作。 它不支持addaddAll操作。

Returns
Set<K> a set view of the keys contained in this map, sorted in ascending order

lastKey

Added in API level 1
K lastKey ()

返回此地图中当前最后一个(最高)的键。

Returns
K the last (highest) key currently in this map
Throws
NoSuchElementException if this map is empty

subMap

Added in API level 1
SortedMap<K, V> subMap (K fromKey, 
                K toKey)

返回此映射部分的视图,其键范围从fromKey (含),至toKey (不包括)。 (如果fromKeytoKey相等,则返回的地图是空的。)返回的地图由此地图支持,因此返回的地图中的更改会反映在此地图中,反之亦然。 返回的地图支持该地图支持的所有可选地图操作。

返回的地图会尝试在其范围外插入密钥,尝试执行 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

tailMap

Added in API level 1
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

values

Added in API level 24
Collection<V> values ()

返回此映射中包含的值的Collection视图。 集合的迭代器按相应键的升序返回值。 该集合由地图支持,因此地图的更改会反映在集合中,反之亦然。 如果在迭代集合的过程中修改了映射(除了通过迭代器自己的remove操作),迭代的结果是未定义的。 该collection支持元素移除,即从映射中相应的映射,经由Iterator.removeCollection.removeremoveAllretainAllclear操作。 它不支持addaddAll操作。

Returns
Collection<V> a collection view of the values contained in this map, sorted in ascending key order

Hooray!