TreeMap
java.lang.Object
|—java.util.AbstractMap<K,V&
|—|—java.util.TreeMap<K,V&
public class TreeMap<K,V>
extends AbstractMap<K,V>
implements NavigableMap<K,V>, Cloneable, Serializable
基于红黑树的 NavigableMap 实现。 地图根据其键的 Comparable 排序,或者根据地图创建时提供的 Comparator 排序,具体取决于使用的构造函数。
此实现为 containsKey、get、put 和 remove 操作提供有保证的 log(n) 时间成本。 算法是对 Cormen、Leiserson 和 Rivest 的算法简介中的那些算法的改编。
请注意,树形映射维护的顺序,就像任何排序映射一样,以及是否提供显式比较器,如果此排序映射要正确实现 Map 接口,则必须与 equals 保持一致。 (参见 Comparable 或 Comparator 以了解与 equals 一致的精确定义。)这是因为 Map 接口是根据 equals 操作定义的,但排序后的映射使用其 compareTo(或比较)方法执行所有键比较,所以两个 从排序映射的角度来看,此方法认为相等的键是相等的。 已排序映射的行为是明确定义的,即使它的排序与 equals 不一致; 它只是不遵守 Map 接口的一般合同。
请注意,此实现不同步。 如果多个线程同时访问一个映射,并且至少有一个线程在结构上修改了映射,则必须在外部进行同步。 (结构修改是添加或删除一个或多个映射的任何操作;仅更改与现有键关联的值不是结构修改。)这通常通过同步一些自然封装映射的对象来完成。 如果不存在这样的对象,则应使用 Collections#synchronizedSortedMap 方法“包装” map。 这最好在创建时完成,以防止对地图的意外不同步访问:
SortedMap m = Collections.synchronizedSortedMap(new TreeMap(...));
由此类的所有“集合视图方法”返回的集合的迭代器方法返回的迭代器是快速失败的:如果在创建迭代器后的任何时间对映射进行结构修改,除了通过迭代器自己的删除之外的任何方式 方法,迭代器将抛出 ConcurrentModificationException。 因此,面对并发修改,迭代器快速而干净地失败,而不是在未来不确定的时间冒任意的、非确定性的行为。
请注意,不能保证迭代器的快速失败行为,因为一般来说,在存在不同步的并发修改的情况下,不可能做出任何硬保证。 快速失败的迭代器会尽最大努力抛出 ConcurrentModificationException。 因此,编写一个依赖于这个异常的正确性的程序是错误的:迭代器的快速失败行为应该只用于检测错误。
此类中的方法及其视图返回的所有 Map.Entry 对都表示映射在生成时的快照。 它们不支持 Entry.setValue 方法。 (但请注意,可以使用 put 更改关联映射中的映射。)
此类是 Java 集合框架的成员。
嵌套类摘要
从类 java.util.AbstractMap 继承的嵌套类/接口 |
---|
AbstractMap.SimpleEntryK,V, AbstractMap.SimpleImmutableEntryK,V |
从接口 java.util.Map 继承的嵌套类/接口 |
---|
Map.EntryK,V |
构造函数摘要
构造函数 | 描述 |
---|---|
TreeMap() | 使用其键的自然顺序构造一个新的空树映射。 |
TreeMap(Comparator<? super K> comparator) | 构造一个新的空树映射,根据给定的比较器排序。 |
TreeMap(Map<? extends K,? extends V> m) | 构造一个包含与给定映射相同映射的新树映射,按照其键的自然顺序排序。 |
TreeMap(SortedMap<K,? extends V> m) | 构造一个新的树形图,其中包含与指定的排序图相同的映射并使用相同的顺序。 |
方法总结
修饰符和类型 | 方法 | 描述 |
---|---|---|
Map.EntryK,V | ceilingEntry(K key) | 返回与大于或等于给定键的最小键关联的键值映射,如果没有这样的键,则返回 null。 |
K | ceilingKey(K key) | 返回大于或等于给定键的最小键,如果没有这样的键,则返回 null。 |
void | clear() | 从此 map 中删除所有映射。 |
Object | clone() | 返回此 TreeMap 实例的浅表副本。 |
Comparator<? super K> | comparator() | 返回用于对该映射中的键进行排序的比较器,如果此映射使用其键的 Comparable,则返回 null。 |
boolean | containsKey(Object key) | 如果此映射包含指定键的映射,则返回 true。 |
boolean | containsValue(Object value) | 如果此映射将一个或多个键映射到指定值,则返回 true。 |
NavigableSetK | descendingKeySet() | 返回此映射中包含的键的逆序 NavigableSet 视图。 |
NavigableMapK,V | descendingMap() | 返回此映射中包含的映射的逆序视图。 |
SetMap.EntryK,V | entrySet() | 返回此映射中包含的映射的 Set 视图。 |
Map.EntryK,V | firstEntry() | 返回与此映射中的最小键关联的键值映射,如果映射为空,则返回 null。 |
K | firstKey() | 返回此映射中当前的第一个(最低)键。 |
Map.EntryK,V | floorEntry(K key) | 返回与小于或等于给定键的最大键关联的键值映射,如果没有这样的键,则返回 null。 |
K | floorKey(K key) | 返回小于或等于给定键的最大键,如果没有这样的键,则返回 null。 |
void | forEach(BiConsumer<? super K,? super V> action) | 对该映射中的每个条目执行给定的操作,直到处理完所有条目或该操作引发异常。 |
V | get(Object key) | 返回指定键映射到的值,如果此映射不包含该键的映射,则返回 null。 |
SortedMapK,V | headMap(K toKey) | 返回此映射部分的视图,其键严格小于 toKey。 |
NavigableMapK,V | headMap(K toKey, boolean inclusive) | 返回此映射部分的视图,其键小于(或等于,如果 inclusive 为真)toKey。 |
Map.EntryK,V | higherEntry(K key) | 返回与严格大于给定键的最小键关联的键值映射,如果没有这样的键,则返回 null。 |
K | higherKey(K key) | 返回严格大于给定键的最小键,如果没有这样的键,则返回 null。 |
SetK | keySet() | 返回此映射中包含的键的 Set 视图。 |
Map.EntryK,V | lastEntry() | 返回与此映射中最大键关联的键值映射,如果映射为空,则返回 null。 |
K | lastKey() | 返回此映射中当前的最后一个(最高)键。 |
Map.EntryK,V | lowerEntry(K key) | 返回与严格小于给定键的最大键关联的键值映射,如果没有这样的键,则返回 null。 |
K | lowerKey(K key) | 返回严格小于给定键的最大键,如果没有这样的键,则返回 null。 |
NavigableSetK | navigableKeySet() | 返回此地图中包含的键的 NavigableSet 视图。 |
Map.EntryK,V | pollFirstEntry() | 移除并返回与此映射中最小键关联的键值映射,如果映射为空,则返回 null。 |
Map.EntryK,V | pollLastEntry() | 删除并返回与此映射中最大键关联的键值映射,如果映射为空,则返回 null。 |
V | put(K key, V value) | 将指定的值与此映射中的指定键相关联。 |
void | putAll(Map<? extends K,? extends V> map) | 将所有映射从指定映射复制到此映射。 |
V | remove(Object key) | 如果存在,则从此 TreeMap 中删除此键的映射。 |
V | replace(K key, V value) | 仅当当前映射到某个值时才替换指定键的条目。 |
boolean | replace(K key, V oldValue, V newValue) | 仅当当前映射到指定值时才替换指定键的条目。 |
void | replaceAll(BiFunction<? super K,? super V,? extends V> function) | 将每个条目的值替换为对该条目调用给定函数的结果,直到所有条目都已处理或该函数引发异常。 |
int | size() | 返回此映射中键值映射的数量。 |
NavigableMapK,V | subMap(K fromKey, boolean fromInclusive, K toKey, boolean toInclusive) | 返回此映射部分的视图,其键范围从 fromKey 到 toKey。 |
SortedMapK,V | subMap(K fromKey, K toKey) | 返回此映射部分的视图,其键范围从 fromKey(包括)到 toKey(不包括)。 |
SortedMapK,V | tailMap(K fromKey) | 返回此地图部分的视图,其键大于或等于 fromKey。 |
NavigableMapK,V | tailMap(K fromKey, boolean inclusive) | 返回此映射部分的视图,其键大于(或等于,如果 inclusive 为 true)fromKey。 |
CollectionV | values() | 返回此映射中包含的值的集合视图。 |
从类 java.util.AbstractMap 继承的方法 |
---|
equals, hashCode, isEmpty, toString |
从接口 java.util.Map 继承的方法 |
---|
compute, computeIfAbsent, computeIfPresent, equals, getOrDefault, hashCode, isEmpty, merge, putIfAbsent, remove |
从类 java.lang.Object 继承的方法 |
---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
构造函数详细信息
TreeMap
public TreeMap()
使用其键的自然顺序构造一个新的空树映射。 插入映射的所有键都必须实现 Comparable 接口。 此外,所有此类键必须相互比较:k1.compareTo(k2) 不得为映射中的任何键 k1 和 k2 抛出 ClassCastException。 如果用户尝试将违反此约束的键放入映射中(例如,用户尝试将字符串键放入键为整数的映射中),则 put(Object key, Object value) 调用将抛出 ClassCastException .
TreeMap
public TreeMap(Comparator<? super K> comparator)
构造一个新的空树映射,根据给定的比较器排序。 插入到映射中的所有键必须通过给定的比较器相互比较:comparator.compare(k1, k2) 不能为映射中的任何键 k1 和 k2 抛出 ClassCastException。 如果用户试图将违反此约束的键放入映射中,则 put(Object key, Object value) 调用将抛出 ClassCastException。
参数:
参数名称 | 参数描述 |
---|---|
comparator | 将用于订购此地图的比较器。 如果为 null,则将使用键的 Comparable。 |
TreeMap
public TreeMap(Map<? extends K,? extends V> m)
构造一个包含与给定映射相同映射的新树映射,按照其键的自然顺序排序。 插入新映射的所有键都必须实现 Comparable 接口。 此外,所有此类键必须相互比较:k1.compareTo(k2) 不得为映射中的任何键 k1 和 k2 抛出 ClassCastException。 此方法在 n*log(n) 时间内运行。
参数:
参数名称 | 参数描述 |
---|---|
m | 其映射将放置在此 map 中的 map |
Throws:
Throw名称 | Throw描述 |
---|---|
ClassCastException | 如果 m 中的键不可比较,或者不可相互比较 |
NullPointerException | 如果指定的 map 为空 |
TreeMap
public TreeMap(SortedMap<K,? extends V> m)
构造一个新的树形图,其中包含与指定的排序图相同的映射并使用相同的顺序。 此方法以线性时间运行。
参数:
参数名称 | 参数描述 |
---|---|
m | 已排序的映射,其映射将放置在此映射中,并且其比较器将用于对此映射进行排序 |
Throws:
Throw名称 | Throw描述 |
---|---|
NullPointerException | 如果指定的 map 为空 |
方法详情
size
public int size()
返回此映射中键值映射的数量。
指定者:
接口 MapK,V 中的大小
覆盖:
AbstractMapK,V 类中的大小
返回:
此映射中的键值映射的数量
containsKey
public boolean containsKey(Object key)
如果此映射包含指定键的映射,则返回 true。
指定者:
containsKey 在接口 MapK,V
覆盖:
类 AbstractMapK,V 中的 containsKey
参数:
参数名称 | 参数描述 |
---|---|
key | 要测试此 map 中是否存在的键 |
返回:
如果此映射包含指定键的映射,则为 true
Throws:
Throw名称 | Throw描述 |
---|---|
ClassCastException | 如果指定的键无法与 map 中当前的键进行比较 |
NullPointerException | 如果指定的键为空并且此映射使用自然排序,或者它的比较器不允许空键 |
containsValue
public boolean containsValue(Object value)
如果此映射将一个或多个键映射到指定值,则返回 true。 更正式地说,当且仅当此映射包含至少一个到值 v 的映射时才返回 true,使得 (value==null ? v==null : value.equals(v))。 对于大多数实现,此操作可能需要 map 大小的线性时间。
指定者:
接口 MapK,V 中的 containsValue
覆盖:
类 AbstractMapK,V 中的 containsValue
参数:
参数名称 | 参数描述 |
---|---|
value | 要测试其在此映射中的存在的值 |
返回:
如果存在到值的映射,则为 true; 否则为 false
get
public V get(Object key)
返回指定键映射到的值,如果此映射不包含该键的映射,则返回 null。
更正式地说,如果此映射包含从键 k 到值 v 的映射,使得键根据映射的顺序比较等于 k,则此方法返回 v; 否则返回null。 (最多可以有一个这样的映射。)
返回值为 null 并不一定表示该映射不包含该键的映射; 映射也可能将键显式映射为空。 containsKey 操作可用于区分这两种情况。
指定者:
进入接口 MapK,V
覆盖:
进入类 AbstractMapK,V
参数:
参数名称 | 参数描述 |
---|---|
key | 要返回其关联值的键 |
返回:
指定键映射到的值,如果此映射不包含该键的映射,则为 null
Throws:
Throw名称 | Throw描述 |
---|---|
ClassCastException | 如果指定的键无法与 map 中当前的键进行比较 |
NullPointerException | 如果指定的键为空并且此映射使用自然排序,或者它的比较器不允许空键 |
comparator
public Comparator<? super K> comparator()
从接口复制的描述:SortedMap
返回用于对该映射中的键进行排序的比较器,如果此映射使用其键的 Comparable,则返回 null。
指定者:
接口 SortedMapK,V 中的比较器
返回:
用于对该映射中的键进行排序的比较器,如果此映射使用其键的自然排序,则为 null
firstKey
public K firstKey()
从接口复制的描述:SortedMap
返回此映射中当前的第一个(最低)键。
指定者:
接口 SortedMapK,V 中的 firstKey
返回:
当前此 map 中的第一个(最低)键
Throws:
Throw名称 | Throw描述 |
---|---|
NoSuchElementException | 如果这个 map 是空的 |
lastKey
public K lastKey()
从接口复制的描述:SortedMap
返回此映射中当前的最后一个(最高)键。
指定者:
接口 SortedMapK,V 中的 lastKey
返回:
当前在此 map 中的最后一个(最高)键
Throws:
Throw名称 | Throw描述 |
---|---|
NoSuchElementException | 如果这个 map 是空的 |
putAll
public void putAll(Map<? extends K,? extends V> map)
将所有映射从指定映射复制到此映射。 这些映射替换此映射对当前指定映射中的任何键的任何映射。
指定者:
putAll在接口MapK,V中
覆盖:
putAll 在类 AbstractMapK,V
参数:
参数名称 | 参数描述 |
---|---|
map | 要存储在此 map 中的映射 |
Throws:
Throw名称 | Throw描述 |
---|---|
ClassCastException | 如果指定映射中的键或值的类阻止它存储在此映射中 |
NullPointerException | 如果指定的映射为空或指定的映射包含空键并且此映射不允许空键 |
put
public V put(K key, V value)
将指定的值与此映射中的指定键相关联。 如果映射先前包含键的映射,则替换旧值。
指定者:
放入接口 MapK,V
覆盖:
放入类 AbstractMapK,V
参数:
参数名称 | 参数描述 |
---|---|
key | 与指定值关联的键 |
value | 与指定键关联的值 |
返回:
与 key 关联的前一个值,如果没有 key 映射,则返回 null。 (返回 null 还可以指示映射先前将 null 与 key 关联。)
Throws:
Throw名称 | Throw描述 |
---|---|
ClassCastException | 如果指定的键无法与 map 中当前的键进行比较 |
NullPointerException | 如果指定的键为空并且此映射使用自然排序,或者它的比较器不允许空键 |
remove
public V remove(Object key)
如果存在,则从此 TreeMap 中删除此键的映射。
指定者:
在接口 MapK,V 中删除
覆盖:
在类 AbstractMapK,V 中删除
参数:
参数名称 | 参数描述 |
---|---|
key | 应该删除映射的键 |
返回:
与 key 关联的前一个值,如果没有 key 映射,则返回 null。 (返回 null 还可以指示映射先前将 null 与 key 关联。)
Throws:
Throw名称 | Throw描述 |
---|---|
ClassCastException | 如果指定的键无法与 map 中当前的键进行比较 |
NullPointerException | 如果指定的键为空并且此映射使用自然排序,或者它的比较器不允许空键 |
clear
public void clear()
从此 map 中删除所有映射。 此调用返回后,map 将为空。
指定者:
在界面 MapK,V 中清除
覆盖:
在类 AbstractMapK,V 中清除
clone
public Object clone()
返回此 TreeMap 实例的浅表副本。 (键和值本身不会被克隆。)
覆盖:
在类 AbstractMapK,V 中克隆
返回:
这张 map 的浅拷贝
firstEntry
public Map.EntryK,V firstEntry()
从接口复制的描述:NavigableMap
返回与此映射中的最小键关联的键值映射,如果映射为空,则返回 null。
指定者:
接口 NavigableMapK,V 中的 firstEntry
返回:
具有最少键的条目,如果此映射为空,则为 null
lastEntry
public Map.EntryK,V lastEntry()
从接口复制的描述:NavigableMap
返回与此映射中最大键关联的键值映射,如果映射为空,则返回 null。
指定者:
接口 NavigableMapK,V 中的 lastEntry
返回:
具有最大键的条目,如果此映射为空,则返回 null
pollFirstEntry
public Map.EntryK,V pollFirstEntry()
从接口复制的描述:NavigableMap
移除并返回与此映射中最小键关联的键值映射,如果映射为空,则返回 null。
指定者:
接口 NavigableMapK,V 中的 pollFirstEntry
返回:
此映射的已删除第一个条目,如果此映射为空,则返回 null
pollLastEntry
public Map.EntryK,V pollLastEntry()
从接口复制的描述:NavigableMap
删除并返回与此映射中最大键关联的键值映射,如果映射为空,则返回 null。
指定者:
接口 NavigableMapK,V 中的 pollLastEntry
返回:
此映射的已删除最后一个条目,如果此映射为空,则返回 null
lowerEntry
public Map.EntryK,V lowerEntry(K key)
从接口复制的描述:NavigableMap
返回与严格小于给定键的最大键关联的键值映射,如果没有这样的键,则返回 null。
指定者:
接口 NavigableMapK,V 中的 lowerEntry
参数:
参数名称 | 参数描述 |
---|---|
key | 键 |
返回:
最大键小于键的条目,如果没有这样的键,则返回 null
Throws:
Throw名称 | Throw描述 |
---|---|
ClassCastException | 如果指定的键无法与 map 中当前的键进行比较 |
NullPointerException | 如果指定的键为空并且此映射使用自然排序,或者它的比较器不允许空键 |
lowerKey
public K lowerKey(K key)
从接口复制的描述:NavigableMap
返回严格小于给定键的最大键,如果没有这样的键,则返回 null。
指定者:
接口 NavigableMapK,V 中的 lowerKey
参数:
参数名称 | 参数描述 |
---|---|
key | 键 |
返回:
小于 key 的最大键,如果没有这样的键,则为 null
Throws:
Throw名称 | Throw描述 |
---|---|
ClassCastException | 如果指定的键无法与 map 中当前的键进行比较 |
NullPointerException | 如果指定的键为空并且此映射使用自然排序,或者它的比较器不允许空键 |
floorEntry
public Map.EntryK,V floorEntry(K key)
从接口复制的描述:NavigableMap
返回与小于或等于给定键的最大键关联的键值映射,如果没有这样的键,则返回 null。
指定者:
接口 NavigableMapK,V 中的 floorEntry
参数:
参数名称 | 参数描述 |
---|---|
key | 键 |
返回:
最大键小于或等于键的条目,如果没有这样的键,则返回 null
Throws:
Throw名称 | Throw描述 |
---|---|
ClassCastException | 如果指定的键无法与 map 中当前的键进行比较 |
NullPointerException | 如果指定的键为空并且此映射使用自然排序,或者它的比较器不允许空键 |
floorKey
public K floorKey(K key)
从接口复制的描述:NavigableMap
返回小于或等于给定键的最大键,如果没有这样的键,则返回 null。
指定者:
接口 NavigableMapK,V 中的 floorKey
参数:
参数名称 | 参数描述 |
---|---|
key | 键 |
返回:
小于或等于 key 的最大键,如果没有这样的键,则为 null
Throws:
Throw名称 | Throw描述 |
---|---|
ClassCastException | 如果指定的键无法与 map 中当前的键进行比较 |
NullPointerException | 如果指定的键为空并且此映射使用自然排序,或者它的比较器不允许空键 |
ceilingEntry
public Map.EntryK,V ceilingEntry(K key)
从接口复制的描述:NavigableMap
返回与大于或等于给定键的最小键关联的键值映射,如果没有这样的键,则返回 null。
指定者:
接口 NavigableMapK,V 中的 ceilingEntry
参数:
参数名称 | 参数描述 |
---|---|
key | 键 |
返回:
具有大于或等于 key 的最小键的条目,如果没有这样的键,则返回 null
Throws:
Throw名称 | Throw描述 |
---|---|
ClassCastException | 如果指定的键无法与 map 中当前的键进行比较 |
NullPointerException | 如果指定的键为空并且此映射使用自然排序,或者它的比较器不允许空键 |
ceilingKey
public K ceilingKey(K key)
从接口复制的描述:NavigableMap
返回大于或等于给定键的最小键,如果没有这样的键,则返回 null。
指定者:
接口 NavigableMapK,V 中的 ceilingKey
参数:
参数名称 | 参数描述 |
---|---|
key | 键 |
返回:
大于或等于 key 的最小键,如果没有这样的键,则返回 null
Throws:
Throw名称 | Throw描述 |
---|---|
ClassCastException | 如果指定的键无法与 map 中当前的键进行比较 |
NullPointerException | 如果指定的键为空并且此映射使用自然排序,或者它的比较器不允许空键 |
higherEntry
public Map.EntryK,V higherEntry(K key)
从接口复制的描述:NavigableMap
返回与严格大于给定键的最小键关联的键值映射,如果没有这样的键,则返回 null。
指定者:
接口 NavigableMapK,V 中的更高条目
参数:
参数名称 | 参数描述 |
---|---|
key | 键 |
返回:
最小键大于键的条目,如果没有这样的键,则返回 null
Throws:
Throw名称 | Throw描述 |
---|---|
ClassCastException | 如果指定的键无法与 map 中当前的键进行比较 |
NullPointerException | 如果指定的键为空并且此映射使用自然排序,或者它的比较器不允许空键 |
higherKey
public K higherKey(K key)
从接口复制的描述:NavigableMap
返回严格大于给定键的最小键,如果没有这样的键,则返回 null。
指定者:
接口 NavigableMapK,V 中的higherKey
参数:
参数名称 | 参数描述 |
---|---|
key | 键 |
返回:
大于 key 的最小键,如果没有这样的键,则返回 null
Throws:
Throw名称 | Throw描述 |
---|---|
ClassCastException | 如果指定的键无法与 map 中当前的键进行比较 |
NullPointerException | 如果指定的键为空并且此映射使用自然排序,或者它的比较器不允许空键 |
keySet
public SetK keySet()
返回此映射中包含的键的 Set 视图。
集合的迭代器按升序返回键。该集合的拆分器是后期绑定的、快速失败的,并且另外报告 Spliterator#SORTED 和 Spliterator#ORDERED 的遇到顺序是升序键顺序。如果树形图的比较器(请参阅比较器())为空,则拆分器的比较器(请参阅 Spliterator.getComparator())为空。否则,拆分器的比较器与树形图的比较器相同或施加相同的总排序。
集合由 map 支持,因此对 map 的更改会反映在集合中,反之亦然。如果在对集合进行迭代时修改了映射(通过迭代器自己的删除操作除外),则迭代的结果是不确定的。该集合支持元素移除,即通过 Iterator.remove、Set.remove、removeAll、retainAll 和 clear 操作从映射中移除相应的映射。它不支持 add 或 addAll 操作。
指定者:
接口 MapK,V 中的 keySet
指定者:
接口 SortedMapK,V 中的 keySet
覆盖:
AbstractMapK,V 类中的 keySet
返回:
此 map 中包含的键的集合视图
navigableKeySet
public NavigableSetK navigableKeySet()
从接口复制的描述:NavigableMap
返回此 map 中包含的键的 NavigableSet 视图。 集合的迭代器按升序返回键。 集合由 map 支持,因此对 map 的更改会反映在集合中,反之亦然。 如果在对集合进行迭代时修改了映射(通过迭代器自己的删除操作除外),则迭代的结果是不确定的。 该集合支持元素移除,即通过 Iterator.remove、Set.remove、removeAll、retainAll 和 clear 操作从映射中移除相应的映射。 它不支持 add 或 addAll 操作。
指定者:
接口 NavigableMapK,V 中的 navigableKeySet
返回:
此 map 中键的可导航集视图
descendingKeySet
public NavigableSetK descendingKeySet()
从接口复制的描述:NavigableMap
返回此映射中包含的键的逆序 NavigableSet 视图。 该集合的迭代器按降序返回键。 集合由 map 支持,因此对 map 的更改会反映在集合中,反之亦然。 如果在对集合进行迭代时修改了映射(通过迭代器自己的删除操作除外),则迭代的结果是不确定的。 该集合支持元素移除,即通过 Iterator.remove、Set.remove、removeAll、retainAll 和 clear 操作从映射中移除相应的映射。 它不支持 add 或 addAll 操作。
指定者:
接口 NavigableMapK,V 中的 descendingKeySet
返回:
此 map 中键的反向可导航集视图
values
public CollectionV values()
返回此映射中包含的值的集合视图。
集合的迭代器按相应键的升序返回值。集合的拆分器是后期绑定的,快速失败的,并且另外报告 Spliterator#ORDERED 遇到的顺序是相应键的升序。
集合由 map 支持,因此对 map 的更改会反映在集合中,反之亦然。如果在对集合进行迭代时修改了映射(通过迭代器自己的删除操作除外),则迭代的结果是不确定的。该集合支持元素移除,即通过 Iterator.remove、Collection.remove、removeAll、retainAll 和 clear 操作从映射中移除相应的映射。它不支持 add 或 addAll 操作。
指定者:
接口 MapK,V 中的值
指定者:
接口 SortedMapK,V 中的值
覆盖:
AbstractMapK,V 类中的值
返回:
此 map 中包含的值的集合视图
entrySet
public SetMap.EntryK,V entrySet()
返回此映射中包含的映射的 Set 视图。
集合的迭代器以升序键顺序返回条目。集合的拆分器是后期绑定的、快速失败的,并且另外报告 Spliterator#SORTED 和 Spliterator#ORDERED 的遇到顺序是升序键顺序。
集合由 map 支持,因此对 map 的更改会反映在集合中,反之亦然。如果在对集合进行迭代时修改了映射(除了通过迭代器自己的删除操作,或通过迭代器返回的映射条目上的 setValue 操作),则迭代的结果是未定义的。该集合支持元素移除,即通过 Iterator.remove、Set.remove、removeAll、retainAll 和 clear 操作从映射中移除相应的映射。它不支持 add 或 addAll 操作。
指定者:
接口 MapK,V 中的 entrySet
指定者:
接口 SortedMapK,V 中的 entrySet
指定者:
AbstractMapK,V 类中的 entrySet
返回:
此 map 中包含的映射的集合视图
descendingMap
public NavigableMapK,V descendingMap()
从接口复制的描述:NavigableMap
返回此映射中包含的映射的逆序视图。 下降映射由该映射支持,因此对映射的更改会反映在下降映射中,反之亦然。 如果在对任一映射的集合视图进行迭代时修改了任一映射(通过迭代器自己的删除操作除外),则迭代的结果是未定义的。
返回的映射具有等价于 Collections#reverseOrder(Comparator)(comparator()) 的排序。 表达式 m.descendingMap().descendingMap() 返回一个 m 的视图,基本上等同于 m。
指定者:
接口 NavigableMapK,V 中的 descendingMap
返回:
此 map 的逆序视图
subMap
public NavigableMapK,V subMap(K fromKey, boolean fromInclusive, K toKey, boolean toInclusive)
从接口复制的描述:NavigableMap
返回此映射部分的视图,其键范围从 fromKey 到 toKey。 如果 fromKey 和 toKey 相等,则返回的映射为空,除非 fromInclusive 和 toInclusive 都为 true。 返回的 map 由该 map 支持,因此返回 map 中的更改会反映在该 map 中,反之亦然。 返回的 map 支持该 map 支持的所有可选 map 操作。
返回的映射将在尝试插入超出其范围的键或构造其端点位于其范围之外的子映射时抛出 IllegalArgumentException。
指定者:
接口 NavigableMapK,V 中的 subMap
参数:
参数名称 | 参数描述 |
---|---|
fromKey | 返回映射中键的低端点 |
fromInclusive | 如果要在返回的视图中包含低端点,则为 true |
toKey | 返回映射中键的高端点 |
toInclusive | 如果要在返回的视图中包含高端端点,则为 true |
返回:
此 map 部分的视图,其键范围从 fromKey 到 toKey
Throws:
Throw名称 | Throw描述 |
---|---|
ClassCastException | 如果 fromKey 和 toKey 无法使用此映射的比较器相互比较(或者,如果映射没有比较器,则使用自然排序)。 如果无法将 fromKey 或 toKey 与映射中当前的键进行比较,则实现可以但不是必须抛出此异常。 |
NullPointerException | 如果 fromKey 或 toKey 为 null 并且此映射使用自然排序,或者其比较器不允许 null 键 |
IllegalArgumentException | 如果 fromKey 大于 toKey; 或者如果此地图本身具有限制范围,并且 fromKey 或 toKey 位于范围的范围之外 |
headMap
public NavigableMapK,V headMap(K toKey, boolean inclusive)
从接口复制的描述:NavigableMap
返回此映射部分的视图,其键小于(或等于,如果 inclusive 为 true)toKey。 返回的 map 由该 map 支持,因此返回 map 中的更改会反映在该 map 中,反之亦然。 返回的 map 支持该 map 支持的所有可选 map 操作。
返回的映射将在尝试在其范围之外插入键时抛出 IllegalArgumentException。
指定者:
接口 NavigableMapK,V 中的 headMap
参数:
参数名称 | 参数描述 |
---|---|
toKey | 返回映射中键的高端点 |
inclusive | 如果要在返回的视图中包含高端端点,则为 true |
返回:
此 map 部分的视图,其键小于(或等于,如果 inclusive 为 true)toKey
Throws:
Throw名称 | Throw描述 |
---|---|
ClassCastException | 如果 toKey 与此 map 的比较器不兼容(或者,如果 map 没有比较器,如果 toKey 没有实现 Comparable)。 如果 toKey 无法与地图中当前的键进行比较,则实现可以但不是必须抛出此异常。 |
NullPointerException | 如果 toKey 为空且此映射使用自然排序,或者其比较器不允许空键 |
IllegalArgumentException | 如果此 map 本身具有受限范围,并且 toKey 位于范围之外 |
tailMap
public NavigableMapK,V tailMap(K fromKey, boolean inclusive)
从接口复制的描述:NavigableMap
返回此映射部分的视图,其键大于(或等于,如果 inclusive 为 true)fromKey。 返回的 map 由该 map 支持,因此返回 map 中的更改会反映在该 map 中,反之亦然。 返回的 map 支持该 map 支持的所有可选 map 操作。
返回的映射将在尝试在其范围之外插入键时抛出 IllegalArgumentException。
指定者:
接口 NavigableMapK,V 中的 tailMap
参数:
参数名称 | 参数描述 |
---|---|
fromKey | 返回映射中键的低端点 |
inclusive | 如果要在返回的视图中包含低端点,则为 true |
返回:
此 map 部分的视图,其键大于(或等于,如果 inclusive 为 true)fromKey
Throws:
Throw名称 | Throw描述 |
---|---|
ClassCastException | 如果 fromKey 与此映射的比较器不兼容(或者,如果映射没有比较器,如果 fromKey 未实现 Comparable)。 如果无法将 fromKey 与当前映射中的键进行比较,则实现可以但不是必须抛出此异常。 |
NullPointerException | 如果 fromKey 为 null 并且此映射使用自然排序,或者它的比较器不允许 null 键 |
IllegalArgumentException | 如果此 map 本身具有限制范围,并且 fromKey 位于范围范围之外 |
subMap
public SortedMapK,V subMap(K fromKey, K toKey)
从接口复制的描述:NavigableMap
返回此映射部分的视图,其键范围从 fromKey(包括)到 toKey(不包括)。 (如果 fromKey 和 toKey 相等,则返回的映射为空。)返回的映射受此映射的支持,因此返回映射中的更改会反映在此映射中,反之亦然。 返回的地图支持该地图支持的所有可选地图操作。
返回的映射将在尝试在其范围之外插入键时抛出 IllegalArgumentException。
等价于 subMap(fromKey, true, toKey, false)。
指定者:
接口 NavigableMapK,V 中的 subMap
指定者:
接口 SortedMapK,V 中的 subMap
参数:
参数名称 | 参数描述 |
---|---|
fromKey | 返回映射中键的低端点(包括) |
toKey | 返回映射中键的高端(不包括) |
返回:
此 map 部分的视图,其键范围从 fromKey(包括)到 toKey(不包括)
Throws:
Throw名称 | Throw描述 |
---|---|
ClassCastException | 如果 fromKey 和 toKey 无法使用此映射的比较器相互比较(或者,如果映射没有比较器,则使用自然排序)。 如果无法将 fromKey 或 toKey 与映射中当前的键进行比较,则实现可以但不是必须抛出此异常。 |
NullPointerException | 如果 fromKey 或 toKey 为 null 并且此映射使用自然排序,或者其比较器不允许 null 键 |
IllegalArgumentException | 如果 fromKey 大于 toKey; 或者如果此 map 本身具有限制范围,并且 fromKey 或 toKey 位于范围的范围之外 |
headMap
public SortedMapK,V headMap(K toKey)
从接口复制的描述:NavigableMap
返回此映射部分的视图,其键严格小于 toKey。 返回的 map 由该 map 支持,因此返回 map 中的更改会反映在该 map 中,反之亦然。 返回的 map 支持该 map 支持的所有可选 map 操作。
返回的映射将在尝试在其范围之外插入键时抛出 IllegalArgumentException。
等效于 headMap(toKey, false)。
指定者:
接口 NavigableMapK,V 中的 headMap
指定者:
接口 SortedMapK,V 中的 headMap
参数:
参数名称 | 参数描述 |
---|---|
toKey | 返回映射中键的高端(不包括) |
返回:
此 map 部分的视图,其键严格小于 toKey
Throws:
Throw名称 | Throw描述 |
---|---|
ClassCastException | 如果 toKey 与此 map 的比较器不兼容(或者,如果 map 没有比较器,如果 toKey 没有实现 Comparable)。 如果 toKey 无法与 map 中当前的键进行比较,则实现可以但不是必须抛出此异常。 |
NullPointerException | 如果 toKey 为空且此映射使用自然排序,或者其比较器不允许空键 |
IllegalArgumentException | 如果此 map 本身具有受限范围,并且 toKey 位于范围之外 |
tailMap
public SortedMapK,V tailMap(K fromKey)
从接口复制的描述:NavigableMap
返回此 map 部分的视图,其键大于或等于 fromKey。 返回的 map 由此 map 支持,因此返回 map 中的更改会反映在此 map 中,反之亦然。 返回的 map 支持该 map 支持的所有可选 map 操作。
返回的映射将在尝试在其范围之外插入键时抛出 IllegalArgumentException。
等价于tailMap(fromKey, true)。
指定者:
接口 NavigableMapK,V 中的 tailMap
指定者:
接口 SortedMapK,V 中的 tailMap
参数:
参数名称 | 参数描述 |
---|---|
fromKey | 返回映射中键的低端点(包括) |
返回:
此 map 部分的视图,其键大于或等于 fromKey
Throws:
Throw名称 | Throw描述 |
---|---|
ClassCastException | 如果 fromKey 与此映射的比较器不兼容(或者,如果映射没有比较器,如果 fromKey 未实现 Comparable)。 如果无法将 fromKey 与当前映射中的键进行比较,则实现可以但不是必须抛出此异常。 |
NullPointerException | 如果 fromKey 为 null 并且此映射使用自然排序,或者它的比较器不允许 null 键 |
IllegalArgumentException | 如果此 map 本身具有限制范围,并且 fromKey 位于范围范围之外 |
replace
public boolean replace(K key, V oldValue, V newValue)
从接口复制的描述:map
仅当当前映射到指定值时才替换指定键的条目。
指定者:
在接口 MapK,V 中替换
参数:
参数名称 | 参数描述 |
---|---|
key | 与指定值关联的键 |
oldValue | 预期与指定键关联的值 |
newValue | 与指定键关联的值 |
返回:
如果值被替换,则为 true
replace
public V replace(K key, V value)
从接口复制的描述:map
仅当当前映射到某个值时才替换指定键的条目。
指定者:
在接口 MapK,V 中替换
参数:
参数名称 | 参数描述 |
---|---|
key | 与指定值关联的键 |
value | 与指定键关联的值 |
返回:
与指定键关联的前一个值,如果键没有映射,则返回 null。 (如果实现支持 null 值,则返回 null 还可以指示映射先前将 null 与键关联。)
forEach
public void forEach(BiConsumer<? super K,? super V> action)
从接口复制的描述:map
对该映射中的每个条目执行给定的操作,直到处理完所有条目或该操作引发异常。 除非实现类另有规定,否则按照条目集迭代的顺序执行动作(如果指定了迭代顺序)。动作抛出的异常将转发给调用者。
指定者:
接口 MapK,V 中的 forEach
参数:
参数名称 | 参数描述 |
---|---|
action | 为每个条目执行的操作 |
replaceAll
public void replaceAll(BiFunction<? super K,? super V,? extends V> function)
从接口复制的描述:map
将每个条目的值替换为对该条目调用给定函数的结果,直到所有条目都已处理或该函数引发异常。 函数抛出的异常被转发给调用者。
指定者:
接口 MapK,V 中的 replaceAll
参数:
参数名称 | 参数描述 |
---|---|
function | 应用于每个条目的函数 |