所在包:java.util.TreeMap
类型参数:
K —— 此映射维护的键的类型
V —— 映射值的类型
public class TreeMap<K,V>
extends AbstractMap<K,V>
implements NavigableMap<K,V>, Cloneable, Serializable
NavigableMap
实现。
该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparator
进行排序,具体取决于使用的构造方法。
此实现为 containsKey、get、put 和 remove 操作提供受保证的 log(n) 时间开销。这些算法是 Cormen、Leiserson 和 Rivest 的 Introduction to Algorithms 中的算法的改编。
注意,如果要正确实现 Map 接口,则有序映射所保持的顺序(无论是否明确提供了比较器)都必须与 equals 一致。(关于与 equals 一致 的精确定义,请参阅 Comparable 或 Comparator)。这是因为 Map 接口是按照 equals 操作定义的,但有序映射使用它的 compareTo(或 compare)方法对所有键进行比较,因此从有序映射的观点来看,此方法认为相等的两个键就是相等的。即使排序与 equals 不一致,有序映射的行为仍然是 定义良好的,只不过没有遵守 Map 接口的常规协定。
注意,此实现不是同步的。如果多个线程同时访问一个映射,并且其中至少一个线程从结构上修改了该映射,则其必须 外部同步。(结构上的修改是指添加或删除一个或多个映射关系的操作;仅改变与现有键关联的值不是结构上的修改。)这一般是通过对自然封装该映射的对象执行同步操作来完成的。如果不存在这样的对象,则应该使用 Collections.synchronizedSortedMap
方法来“包装”该映射。最好在创建时完成这一操作,以防止对映射进行意外的不同步访问,如下所示:
SortedMap m = Collections.synchronizedSortedMap(new TreeMap(...));
collection(由此类所有的“collection 视图方法”返回)的 iterator 方法返回的迭代器都是快速失败 的:在迭代器创建之后,如果从结构上对映射进行修改,除非通过迭代器自身的 remove 方法,否则在其他任何时间以任何方式进行修改都将导致迭代器抛出 ConcurrentModificationException
。因此,对于并发的修改,迭代器很快就完全失败,而不会冒着在将来不确定的时间发生不确定行为的风险。
注意,迭代器的快速失败行为无法得到保证,一般来说,当存在不同步的并发修改时,不可能作出任何肯定的保证。快速失败迭代器尽最大努力抛出 ConcurrentModificationException。因此,编写依赖于此异常的程序的做法是错误的,正确做法是:迭代器的快速失败行为应该仅用于检测 bug。
此类及其视图中的方法返回的所有 Map.Entry 对都表示生成它们时的映射关系的快照。它们不 支持 Entry.setValue 方法。(不过要注意的是,使用 put 更改相关映射中的映射关系是有可能的。)
此类是 Java Collections Framework 的成员。
Map
, HashMap
, Hashtable
, Comparable
, Comparator
, Collection,Serialized Form
Nested Class Summary嵌套类摘要 |
Nested classes/interfaces inherited from class java.util.AbstractMap嵌套类/接口 继承自 java.util.AbstractMap类 |
|
构造方法摘要 |
Constructor and Description |
TreeMap()
使用其键的自然排序构造一个新的空树状图。
|
TreeMap(Comparator<? super K> comparator)
构造一个新的,空的树图,按照给定的比较器排序。
|
TreeMap(Map<? extends K,? extends V> m)
构造一个新的树状图,其中包含与给定映射相同的映射,根据其键的 自然顺序进行排序 。
|
TreeMap(SortedMap<K,? extends V> m)
构造一个包含相同映射并使用与指定排序映射相同顺序的新树映射。
|
方法摘要 | |
---|---|
Modifier and Type | Method and Description |
Map.Entry<K,V> |
ceilingEntry(K key)
返回与大于或等于给定键的最小键相关联的键值映射,如果没有此键,则
null 。 |
K |
ceilingKey(K key)
返回大于或等于给定键的
null 键,如果没有此键,则返回 null 。 |
void |
clear()
从这张映射中删除所有的映射。
|
Object |
clone()
返回此
TreeMap 实例的浅拷贝。 |
Comparator<? super K> |
comparator()
返回用于订购此映射中的键的比较器,或
null 如果此映射使用其键的natural ordering 。 |
boolean |
containsKey(Object key)
如果此映射包含指定键的映射,则返回
true 。 |
boolean |
containsValue(Object value)
如果此映射将一个或多个键映射到指定值,则返回
true 。 |
NavigableSet<K> |
descendingKeySet()
返回此映射中包含的键的相反顺序
NavigableSet 。 |
NavigableMap<K,V> |
descendingMap()
返回此映射中包含的映射的反向排序视图。
|
Set<Map.Entry<K,V>> |
entrySet()
返回此映射中包含的映射的
Set 视图。 |
Map.Entry<K,V> |
firstEntry()
返回与该映射中的最小键相关联的键值映射,如果映射为空,则返回
null 。 |
K |
firstKey()
返回此映射中当前的第一个(最低)键。
|
Map.Entry<K,V> |
floorEntry(K key)
返回与小于或等于给定键的最大键相关联的键值映射,如果没有此键,则
null 。 |
K |
floorKey(K key)
返回小于或等于给定键的最大键,如果没有这样的键,则返回
null 。 |
void |
forEach(BiConsumer<? super K,? super V> action)
对此映射中的每个条目执行给定的操作,直到所有条目都被处理或操作引发异常。
|
V |
get(Object key)
返回到指定键所映射的值,或
null 如果此映射包含该键的映射。 |
SortedMap<K,V> |
headMap(K toKey)
返回此映射部分的视图,其密钥严格小于
toKey 。 |
NavigableMap<K,V> |
headMap(K toKey, boolean inclusive)
返回此映射部分的视图,其键值小于(或等于,如果
inclusive 为真) toKey 。 |
Map.Entry<K,V> |
higherEntry(K key)
返回与最小密钥相关联的密钥值映射严格大于给定密钥,如果没有这样的密钥则
null 。 |
K |
higherKey(K key)
返回严格大于给定键的最小键,如果没有这样的键,则返回
null 。 |
Set<K> |
keySet()
返回此映射中包含的键的
Set 视图。 |
Map.Entry<K,V> |
lastEntry()
返回与该映射中最大关键字关联的键值映射,如果映射为空,则返回
null 。 |
K |
lastKey()
返回当前在此映射中的最后(最高)键。
|
Map.Entry<K,V> |
lowerEntry(K key)
返回与最大密钥相关联的密钥值映射严格小于给定密钥,如果没有这样的密钥,则
null 。 |
K |
lowerKey(K key)
返回严格小于给定键的最大键,如果没有这样的键,则返回
null 。 |
NavigableSet<K> |
navigableKeySet()
返回此映射中包含的键的
NavigableSet 视图。 |
Map.Entry<K,V> |
pollFirstEntry()
删除并返回与该映射中的最小键相关联的键值映射,如果映射为空,则返回
null 。 |
Map.Entry<K,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()
返回此映射中键值映射的数量。
|
NavigableMap<K,V> |
subMap(K fromKey, boolean fromInclusive, K toKey, boolean toInclusive)
返回此映射部分的视图,其关键范围为
fromKey 至 toKey 。 |
SortedMap<K,V> |
subMap(K fromKey, K toKey)
返回此映射部分的视图,其关键字范围从
fromKey (含)到 toKey ,独占。 |
SortedMap<K,V> |
tailMap(K fromKey)
返回此映射部分的视图,其键大于等于
fromKey 。 |
NavigableMap<K,V> |
tailMap(K fromKey, boolean inclusive)
返回此映射部分的视图,其键大于(或等于,如果
inclusive 为真) fromKey 。 |
Collection<V> |
values()
返回此映射中包含的值的
Collection 视图。 |
以下方法继承自java.util.AbstractMap类
equals, hashCode, isEmpty, toString
以下方法继承自java.lang.Object类
finalize, getClass, notify, notifyAll, wait, wait, wait
以下方法继承自java.util.Map接口
compute, computeIfAbsent, computeIfPresent, equals, getOrDefault, hashCode, isEmpty, merge, putIfAbsent, remove
public TreeMap()
Comparable
界面。 此外,所有这些密钥必须是相互可比的 : k1.compareTo(k2)
不能为ClassCastException
中的任何键k1
和k2
。 如果用户试图将一个键放入违反该约束的映射中(例如,用户尝试将一个字符串键放入一个键为整数的映射中),则put(Object key, Object value)
调用将抛出ClassCastException
。public TreeMap(Comparator<? super K> comparator)
comparator.compare(k1, k2)
不得为ClassCastException
中的任何键k1
和k2
。 如果用户试图将一个键放入映射中,违反此约束,则put(Object key, Object value)
调用将抛出ClassCastException
。comparator
- 将用于订购此映射的比较器。 如果null
,则使用natural ordering的按键。public TreeMap(Map<? extends K,? extends V> m)
Comparable
界面。 此外,所有这些密钥必须是相互可比的 : k1.compareTo(k2)
不能为ClassCastException
中的任何键k1
和k2
。 此方法运行在n * log(n)时间。m
- 其映射将放置在此映射中的映射ClassCastException
- 如果m中的键不是Comparable
,或者不相互比较NullPointerException
- 如果指定的映射为空public TreeMap(SortedMap<K,? extends V> m)
m
- 其映射将被放置在该映射中的排序映射,并且其比较器将用于对该映射进行排序NullPointerException
- 如果指定的映射为空
public int size()
public boolean containsKey(Object key)
true
。containsKey
在界面 Map<K,V>
containsKey
在类别 AbstractMap<K,V>
key
- 要在此映射中存在的密钥要进行测试true
如果此映射包含指定键的映射ClassCastException
- 如果指定的键不能与当前在映射中的键进行比较NullPointerException
- 如果指定的键为空,并且此映射使用自然排序,或者其比较器不允许空键 public boolean containsValue(Object value)
true
。 更正式地,返回true
如果且仅当此映射包含至少一个映射到值v
,使得(value==null ? v==null : value.equals(v))
。 对于大多数实现,此操作可能需要在映射大小的时间线性。containsValue
在界面 Map<K,V>
containsValue
在类别 AbstractMap<K,V>
value
- 要在此映射中存在的值要进行测试true
如果映射到value
存在; false
否则public V get(Object key)
null
如果此映射包含该键的映射。
更正式地,如果该映射包含从键k
到值v
,使得key
根据映射的排序等于k
,则该方法返回v
; 否则返回null
。 (最多可以有一个这样的映射。)
返回值null
并不一定表示该映射不包含该键的映射; 映射也可能明确地将密钥映射到null
。 可以使用containsKey
操作来区分这两种情况。
get
在界面 Map<K,V>
get
在 AbstractMap<K,V>
key
- 要返回其关联值的键null
ClassCastException
- 如果指定的键不能与当前在映射中的键进行比较NullPointerException
- 如果指定的键为空,并且该映射使用自然排序,或者其比较器不允许空键 public Comparator<? super K> comparator()
SortedMap
复制 null
如果此映射使用其键的natural ordering 。comparator
在界面 SortedMap<K,V>
null
如果该映射使用其键的自然排序 public K firstKey()
SortedMap
复制 firstKey
在界面 SortedMap<K,V>
NoSuchElementException
- 如果 NoSuchElementException
空 public K lastKey()
SortedMap
复制 lastKey
在界面 SortedMap<K,V>
NoSuchElementException
- 如果这张映射是空的 public void putAll(Map<? extends K,? extends V> map)
putAll
在界面 Map<K,V>
putAll
在类别 AbstractMap<K,V>
map
- 要存储在此映射中的映射ClassCastException
- 如果指定映射中的键或值的类别阻止其存储在此映射中NullPointerException
- 如果指定的映射为空或指定的映射包含空键,并且此映射不允许空键 public V put(K key,
V value)
put
在界面 Map<K,V>
put
在类别 AbstractMap<K,V>
key
- 指定值与之关联的键value
- 与指定键相关联的值key
,或null
如果没有key
映射。 (A null
返回也可以指示以前关联的映射null
与key
)ClassCastException
- 如果指定的键不能与当前在映射中的键进行比较NullPointerException
- 如果指定的键为空,此映射使用自然排序,或者其比较器不允许空键 public V remove(Object key)
remove
在界面 Map<K,V>
remove
在类别 AbstractMap<K,V>
key
- 应该删除哪个映射的键key
,或null
如果没有key
映射。 (A null
返回也可以表示该映射之前关联的null
与key
)ClassCastException
- 如果指定的键不能与当前在映射中的键进行比较NullPointerException
- 如果指定的键为空,并且该映射使用自然排序,或者其比较器不允许空值 public void clear()
public Object clone()
TreeMap
实例的浅拷贝。 (键和值本身不被克隆。)clone
在类别 AbstractMap<K,V>
Cloneable
public Map.Entry<K,V> firstEntry()
NavigableMap
复制的描述null
。NavigableMap<K,V>
中的 firstEntry
null
public Map.Entry<K,V> lastEntry()
NavigableMap
复制的描述null
。 NavigableMap<K,V>
中的 lastEntry
null
public Map.Entry<K,V> pollFirstEntry()
NavigableMap
复制的描述null
。 。NavigableMap<K,V>
中的 pollFirstEntry
此映射中被移除的第一个条目;如果此映射为空,则返回 null
l
public Map.Entry<K,V> pollLastEntry()
NavigableMap
复制的描述null
。 NavigableMap<K,V>
中的 pollLastEntry
null
public Map.Entry<K,V> lowerEntry(K key)
NavigableMap
复制的描述null
NavigableMap<K,V>
中的 lowerEntry
key
- 键key
的条目;如果不存在这样的键,则返回 null
ClassCastException
- 如果指定键不能与映射中的当前键进行比较NullPointerException
- 如果指定键为 null,并且此映射使用自然顺序,或者其比较器不允许使用 null 键public K lowerKey(K key)
NavigableMap
复制的描述null
。 NavigableMap<K,V>
中的 lowerKey
key
- 键key
的最大键;如果不存在这样的键,则返回 null
ClassCastException
- 如果指定键不能与映射中的当前键进行比较NullPointerException
- 如果指定键为 null,并且此映射使用自然顺序,或者其比较器不允许使用 null 键public Map.Entry<K,V> floorEntry(K key)
NavigableMap
复制的描述null
。 NavigableMap<K,V>
中的 floorEntry
key
- 键key
的条目;如果不存在这样的键,则返回 null
ClassCastException
- 如果指定键不能与映射中的当前键进行比较。NullPointerException
- 如果指定键为 null,并且此映射使用自然顺序,或者其比较器不允许使用 null 键。public K floorKey(K key)
NavigableMap
复制的描述null
。 NavigableMap<K,V>
中的 floorKey
key
- 键key
的最大键;如果不存在这样的键,则返回 null
ClassCastException
- 如果指定键不能与映射中的当前键进行比较。NullPointerException
- 如果指定键为 null,并且此映射使用自然顺序,或者其比较器不允许使用 null 键。public Map.Entry<K,V> ceilingEntry(K key)
NavigableMap
复制的描述null
。NavigableMap<K,V>
中的 ceilingEntry
key
- 键key
的条目;如果不存在这样的键,则返回 null
ClassCastException
- 如果指定键不能与映射中的当前键进行比较NullPointerException
- 如果指定键为 null,并且此映射使用自然顺序,或者其比较器不允许使用 null 键public K ceilingKey(K key)
NavigableMap
复制的描述null
。 NavigableMap<K,V>
中的 ceilingKey
key
- 键NavigableMap<K,V>
中的 ceilingKey
ClassCastException
- 如果指定键不能与映射中的当前键进行比较NullPointerException
- 如果指定键为 null,并且此映射使用自然顺序,或者其比较器不允许使用 null 键public Map.Entry<K,V> higherEntry(K key)
NavigableMap
复制的描述null
。 null
。 key
- 键key
的条目;如果不存在这样的键,则返回 null
ClassCastException
- 如果指定键不能与映射中的当前键进行比较NullPointerException
- 如果指定键为 null,并且此映射使用自然顺序,或者其比较器不允许使用 null 键public K higherKey(K key)
NavigableMap
复制的描述null
。NavigableMap<K,V>
中的 higherKey
key
- 键key
的最小键;如果不存在这样的键,则返回 null
ClassCastException
- 如果指定键不能与映射中的当前键进行比较NullPointerException
- 如果指定键为 null,并且此映射使用自然顺序,或者其比较器不允许使用 null 键public Set<K> keySet()
Set
视图。
set 的迭代器将按升序返回这些键。 该 set 受映射支持,所以对映射的更改可在此 set 中反映出来,反之亦然。如果对该 set 进行迭代的同时修改了映射(通过迭代器自己的 remove 操作除外),则迭代结果是不确定的。此 set 支持元素移除,通过 Iterator.remove、Set.remove、removeAll、retainAll 和 clear 操作,可从映射中移除相应的映射关系。它不支持 add 或 addAll 操作。
public NavigableSet<K> navigableKeySet()
NavigableMap
复制的描述NavigableSet
视图。set 的迭代器按升序返回键。set 受映射支持,因此对映射的更改将反映在 set 中,反之亦然。如果正在对 set 进行迭代的同时修改了映射(通过迭代器自己的 remove
操作除外),则迭代结果是不确定的。set 支持元素移除,即通过 Iterator.remove
、Set.remove
、removeAll
、retainAll
和 clear
操作从映射中移除相应的映射关系。它不支持 add
或 addAll
操作。 NavigableMap<K,V>
中的 navigableKeySet
public NavigableSet<K> descendingKeySet()
NavigableMap
复制的描述NavigableSet
视图。set 的迭代器按降序返回键。set 受映射支持,因此对映射的更改将反映在 set 中,反之亦然。如果正在对 set 进行迭代的同时修改了映射(通过迭代器自己的 remove
操作除外),则迭代结果是不确定的。set 支持元素移除,即通过 Iterator.remove
、Set.remove
、removeAll
、retainAll
和 clear
操作从映射中移除相应的映射关系。它不支持 add
或 addAll
操作。 NavigableMap<K,V>
中的 descendingKeySet
NavigableMap<K,V>
中的 descendingKeySet
public Collection<V> values()
Collection
视图。该 collection 的迭代器将按相关键的升序返回这些值。该 collection 受映射支持,所以对映射的更改可在此 collection 中反映出来,反之亦然。如果对该 collection 进行迭代的同时修改了映射(通过迭代器自己的 remove 操作除外),则迭代结果是不确定的。该 collection 支持元素的移除,通过 Iterator.remove、Collection.remove、removeAll、retainAll 和 clear 操作,可从映射中移除相应的映射关系。它不支持 add 或 addAll 操作。 public Set<Map.Entry<K,V>> entrySet()
Set
视图。该 set 的迭代器将按升序返回这些条目。该 set 受映射支持,所以对映射的更改可在此 set 中反映出来,反之亦然。如果对该 set 进行迭代的同时修改了映射(通过迭代器自己的 remove 操作,或者通过在迭代器返回的映射条目上执行 setValue 操作除外),则迭代结果是不确定的。此 set 支持元素移除,通过 Iterator.remove、Set.remove、removeAll、retainAll 和 clear 操作,可从映射中移除相应的映射关系。它不支持 add 或 addAll 操作。
public NavigableMap<K,V> descendingMap()
NavigableMap
复制的描述remove
之外),否则修改了任一映射,则迭代的结果是未定义的。
返回的映射的订单等价于Collections.reverseOrder
(comparator()) 。 表达式m.descendingMap().descendingMap()
返回m.descendingMap().descendingMap()
的视图, m
相当于m
。
NavigableMap<K,V>
中的 descendingMap
public NavigableMap<K,V> subMap(K fromKey,
boolean fromInclusive,
K toKey,
boolean toInclusive)
NavigableMap
复制的描述fromKey
到 toKey
。如果 fromKey
和 toKey
相等,则返回的映射为空,除非 fromExclusive
和 toExclusive
都为 true。返回的映射受此映射支持,因此返回映射中的更改将反映在此映射中,反之亦然。返回的映射支持此映射支持的所有可选映射操作。 如果试图在返回映射的范围之外插入一个键,或者构造一个任一端点位于其范围之外的子映射,则返回的映射将抛出 IllegalArgumentException
。
NavigableMap<K,V>
中的 subMap
ffromKey
- 返回映射中键的低端点
fromInclusive
- 如果低端点要包含在返回的视图中,则为 true
toKey
- 返回映射中键的高端点
toInclusive
- 如果高端点要包含在返回的视图中,则为 true
fromKey
到 toKey
ClassCastException
- 如果不能使用此映射的比较器(如果映射没有比较器,则使用自然顺序)比较 fromKey
和 toKey
。如果 fromKey
或 toKey
不能与映射中当前键进行比较,则实现可以(但不是必须)抛出此异常。NullPointerException
- 如果 fromKey 或 toKey 为 null,并且此映射使用自然顺序,或者其比较器不允许使用 null 键IllegalArgumentException
- 如果 fromKey
大于 toKey
;如果此映射本身有范围限制,并且 fromKey
或 toKey
位于范围的边界之外public NavigableMap<K,V> headMap(K toKey,
boolean inclusive)
NavigableMap
复制的描述inclusive
为 true)toKey
。返回的映射受此映射支持,因此返回映射中的更改将反映在此映射中,反之亦然。返回的映射支持此映射支持的所有可选映射操作。 如果试图在返回映射的范围之外插入一个键,则返回的映射将抛出 IllegalArgumentException
。
NavigableMap<K,V>
中的 headMap
toKey
- 返回映射中键的高端点inclusive
- 返回映射中键的高端点inclusive
为 true)toKey
ClassCastException
- 如果 toKey
与此映射的比较器不兼容(如果映射没有比较器;如果 toKey
没有实现 Comparable
)。如果 toKey
不能与映射中的当前键进行比较,则实现可以(但不是必须)抛出此异常。 NullPointerException
- 如果 toKey 为 null,并且此映射使用自然顺序,或者其比较器不允许使用 null 键 IllegalArgumentException
- 如果 toKey 为 null,并且此映射使用自然顺序,或者其比较器不允许使用 null 键 public NavigableMap<K,V> tailMap(K fromKey,
boolean inclusive)
NavigableMap
复制的描述inclusive
为 true)fromKey
。返回的映射受此映射支持,因此返回映射中的更改将反映在此映射中,反之亦然。返回的映射支持此映射支持的所有可选映射操作。 如果试图在返回映射的范围之外插入一个键,则返回的映射将抛出 IllegalArgumentException
。
NavigableMap<K,V>
中的 tailMap
fromKey
- 接口 NavigableMap<K,V>
中的 tailMap
inclusive
- 如果低端点要包含在返回的视图中,则为 true
inclusive
为真) fromKey
ClassCastException
- 如果 fromKey
与此映射的比较器不兼容(如果映射没有比较器;如果 fromKey
没有实现 Comparable
)。如果 fromKey
不能与映射中的当前键进行比较,则实现可以(但不是必须)抛出此异常。 NullPointerException
- 如果 fromKey 为 null,并且此映射使用自然顺序,或者其比较器不允许使用 null 键 IllegalArgumentException
- 如果此映射本身有范围限制,并且 fromKey
位于范围的边界之外public SortedMap<K,V> subMap(K fromKey,
K toKey)
NavigableMap
复制的描述如果试图在返回映射的范围之外插入键,则返回的映射将抛出 IllegalArgumentException。
相当于subMap(fromKey, true, toKey, false)
。
NavigableMap<K,V>
中的 subMap
SortedMap<K,V>
中的 subMap
fromKey
- 返回映射中键的低端点(包括)toKey
- 返回映射中键的高端点(不包括)ClassCastException
- 如果无法使用此映射的比较器(如果此映射没有比较器,则使用自然顺序)比较 fromKey 和 toKey。如果 fromKey 或 toKey 不能与映射中当前键进行比较,则实现可以(但不是必须)抛出此异常。NullPointerException
- 如果 fromKey 或 toKey 为 null,并且此映射使用自然顺序,或者其比较器不允许使用 null 键IllegalArgumentException
- 如果 fromKey 大于 toKey;如果此映射本身有范围限制,并且 fromKey 或 toKey 位于范围的边界之外public SortedMap<K,V> headMap(K toKey)
NavigableMap
复制的描述如果试图在返回映射的范围之外插入键,则返回的映射将抛出 IllegalArgumentException。
相当于headMap(toKey, false)
。
NavigableMap<K,V>
中的 headMap
SortedMap<K,V>
中的 headMap
toKey
- 返回映射中键的高端点(不包括)ClassCastException
- 如果 toKey 与此映射的比较器不兼容(如果该映射没有比较器;如果 toKey 没有实现 Comparable
)。如果 toKey 不能与映射中的当前键进行比较,则实现可以(但不是必须)抛出此异常。NullPointerException
- 如果 toKey 为 null,并且此映射使用自然顺序,或者其比较器不允许使用 null 键IllegalArgumentException
- 如果此映射本身有范围限制,并且 toKey 位于范围的边界之外public SortedMap<K,V> tailMap(K fromKey)
NavigableMap
复制的描述如果试图在返回映射的范围之外插入键,则返回的映射将抛出 IllegalArgumentException。
相当于tailMap(fromKey, true)
。
NavigableMap<K,V>
中的 tailMap
SortedMap<K,V>
中的 tailMap
fromKey
- 返回映射中键的低端点(包括) ClassCastException
- 如果 fromKey 与此映射的比较器不兼容(如果该映射没有比较器;如果 fromKey 没有实现 Comparable
)。如果 fromKey 不能与映射中的当前键进行比较,则实现可以(但不 是必须)抛出此异常。 NullPointerException
- 如果 fromKey 为 null,并且此映射使用自然顺序,或者其比较器不允许使用 null 键 IllegalArgumentException
- 如果此映射本身有范围限制,并且 fromKey 位于范围的边界之外public boolean replace(K key,
V oldValue,
V newValue)
NavigableMap
复制的描述public boolean replace(K key,
V oldValue,
V newValue)
NavigableMap
复制的描述public void forEach(BiConsumer<? super K,? super V> action)
NavigableMap
复制的描述public void replaceAll(BiFunction<? super K,? super V,? extends V> function)
NavigableMap
复制的描述replaceAll
在界面 Map<K,V>
function
- 应用于每个条目的功能
原文:https://www.cnblogs.com/LinQingYang/p/12433767.html