- java.lang.Object
-
- java.util.AbstractMap<K,V>
-
- java.util.TreeMap<K,V>
-
- 参数类型
-
K- 由此地图维护的键的类型 -
V- 映射值的类型
- All Implemented Interfaces:
-
Serializable,Cloneable,Map<K,V>,NavigableMap<K,V>,SortedMap<K,V>
public class TreeMap<K,V> extends AbstractMap<K,V> implements NavigableMap<K,V>, Cloneable, Serializable
一个基于红黑树的NavigableMap实现。 该地图根据其键值的natural ordering或地图创建时提供的Comparator进行排序,具体取决于使用的构造函数。此实现提供了保证的log(n)时间成本
containsKey,get,put和remove操作。 算法是Cormen,Leiserson和Rivest的算法介绍中的算法的适应性。请注意,如果此排序映射要正确实现
Map接口,则由树映射维护的排序(如任何排序映射)以及是否提供显式比较器都必须与equals一致 。 (见Comparable或Comparator,以确定与等于一致的精确定义。)这是因为Map接口是根据equals操作定义的,但是排序的映射使用其compareTo(或compare)方法执行所有关键比较,因此两从排序图的角度来说,通过该方法认为相等的键是相等的。 排序地图的行为是明确定义的,即使其排序与equals不一致; 它只是不符合Map接口的总体合同。请注意,此实现不同步。 如果多个线程同时访问映射,并且至少一个线程在结构上修改映射,则必须在外部进行同步。 (结构修改是添加或删除一个或多个映射的任何操作;仅改变与现有密钥相关联的值不是结构修改。)这通常通过对自然封装映射的一些对象进行同步来实现。 如果没有这样的对象存在,则应使用
Collections.synchronizedSortedMap方法“映射”地图。 这最好在创建时完成,以防止意外的不同步访问地图:SortedMap m = Collections.synchronizedSortedMap(new TreeMap(...));由所有这个类的“集合视图方法”返回的集合的
iterator方法返回的迭代器是故障快速的 :如果映射在迭代器创建之后的任何时间被结构化地修改,除了通过迭代器自己的remove方法,迭代器会抛出一个ConcurrentModificationException。 因此,面对并发修改,迭代器将快速而干净地失败,而不是在未来未确定的时间冒着任意的非确定性行为。请注意,迭代器的故障快速行为无法保证,因为一般来说,在不同步并发修改的情况下,无法做出任何硬性保证。 失败快速的迭代器
ConcurrentModificationException扔ConcurrentModificationException。 因此,编写依赖于此异常的程序的正确性将是错误的: 迭代器的故障快速行为应仅用于检测错误。所有
Map.Entry对,通过此类中的方法返回,其视图表示生成时映射的快照。 他们不支持Entry.setValue方法。 (请注意,可以使用put更改关联地图中的映射。)这个类是Java Collections Framework的成员。
- 从以下版本开始:
- 1.2
- 另请参见:
-
Map,HashMap,Hashtable,Comparable,Comparator,Collection, Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class java.util.AbstractMap
AbstractMap.SimpleEntry<K,V>, AbstractMap.SimpleImmutableEntry<K,V>
-
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 Map.Entry<K,V>ceilingEntry(K key)返回与大于或等于给定键的最小键相关联的键值映射,如果没有此键,则null。KceilingKey(K key)返回大于或等于给定键的null键,如果没有这样的键,则null。voidclear()从这张地图中删除所有的映射。Objectclone()返回此TreeMap实例的浅拷贝。Comparator<? super K>comparator()返回用于为了在这个映射中的键,或比较null如果此映射使用natural ordering它的键。booleancontainsKey(Object key)如果此映射包含指定键的映射,则返回true。booleancontainsValue(Object value)如果此映射将一个或多个键映射到指定的值,则返回true。NavigableSet<K>descendingKeySet()返回此映射中包含的键的相反顺序NavigableSet。NavigableMap<K,V>descendingMap()返回此映射中包含的映射的反向排序视图。Set<Map.Entry<K,V>>entrySet()返回此地图中包含的映射的Set视图。Map.Entry<K,V>firstEntry()返回与该地图中的最小键相关联的键值映射,如果地图为空,则null。KfirstKey()返回此地图中当前的第一个(最低)键。Map.Entry<K,V>floorEntry(K key)返回与小于或等于给定键的最大键相关联的键值映射,如果没有此键,则null。KfloorKey(K key)返回小于或等于给定键的最大键,如果没有此键,则null。voidforEach(BiConsumer<? super K,? super V> action)对此映射中的每个条目执行给定的操作,直到所有条目都被处理或操作引发异常。Vget(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。KhigherKey(K key)返回严格大于给定键的最小键,如果没有这样的键,则返回null。Set<K>keySet()返回此地图中包含的键的Set视图。Map.Entry<K,V>lastEntry()返回与该地图中最大键相关联的键值映射,如果地图为空,则null。KlastKey()返回当前在此地图中的最后(最高)键。Map.Entry<K,V>lowerEntry(K key)返回与严格小于给定键的最大键相关联的键值映射,如果没有这样的键,则null。KlowerKey(K key)返回严格小于给定键的最大键,如果没有这样的键,则返回null。NavigableSet<K>navigableKeySet()返回此地图中包含的键的NavigableSet视图。Map.Entry<K,V>pollFirstEntry()删除并返回与该地图中的最小键相关联的键值映射,如果地图为空,则null。Map.Entry<K,V>pollLastEntry()删除并返回与该地图中最大键相关联的键值映射,如果地图为空,则null。Vput(K key, V value)将指定的值与此映射中的指定键相关联。voidputAll(Map<? extends K,? extends V> map)将指定地图的所有映射复制到此地图。Vremove(Object key)从此TreeMap中删除此键的映射(如果存在)。Vreplace(K key, V value)只有当目标映射到某个值时,才能替换指定键的条目。booleanreplace(K key, V oldValue, V newValue)仅当当前映射到指定的值时,才能替换指定键的条目。voidreplaceAll(BiFunction<? super K,? super V,? extends V> function)将每个条目的值替换为对该条目调用给定函数的结果,直到所有条目都被处理或该函数抛出异常。intsize()返回此地图中键值映射的数量。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视图。-
Methods inherited from class java.util.AbstractMap
equals, hashCode, isEmpty, toString
-
-
-
-
构造方法详细信息
-
TreeMap
public TreeMap()
使用其键的自然排序构造一个新的空树状图。 插入地图的所有键都必须实现Comparable界面。 此外,所有这些密钥必须是相互可比的 :k1.compareTo(k2)不得为ClassCastException中的任何密钥k1和k2扔ClassCastException。 如果用户试图将一个键放入违反该约束的地图(例如,用户尝试将一个字符串键放入一个键为整数的地图中),则put(Object key, Object value)调用将抛出一个ClassCastException。
-
TreeMap
public TreeMap(Comparator<? super K> comparator)
构造一个新的,空的树图,按照给定的比较器排序。 插入到地图中的所有键必须由给定的比较器相互比较:comparator.compare(k1, k2)不能为ClassCastException中的任何键k1和k2抛出ClassCastException。 如果用户试图将一个键放入地图中,违反这个约束,put(Object key, Object value)调用将会抛出一个ClassCastException。- 参数
-
comparator- 将用于订购此映射的比较器。 如果是null,将使用natural ordering的键。
-
TreeMap
public TreeMap(Map<? extends K,? extends V> m)
构造一个新的树状图,其中包含与给定地图相同的映射,根据其键的自然顺序进行排序 。 插入新地图的所有键都必须实现Comparable接口。 此外,所有这些密钥必须是相互可比的 :k1.compareTo(k2)不得为ClassCastException中的任何密钥k1和k2。 此方法运行在n * log(n)时间。- 参数
-
m- 其映射将放置在此映射中的映射 - 异常
-
ClassCastException- 如果m中的键不是Comparable,或者不相互比较 -
NullPointerException- 如果指定的地图为空
-
TreeMap
public TreeMap(SortedMap<K,? extends V> m)
构造一个包含相同映射并使用与指定排序映射相同顺序的新树映射。 该方法运行在线性时间。- 参数
-
m- 其映射将被放置在此映射中的排序映射,并且其比较器将用于对该映射进行排序 - 异常
-
NullPointerException- 如果指定的地图为空
-
-
方法详细信息
-
size
public int size()
返回此地图中键值映射的数量。
-
containsKey
public boolean containsKey(Object key)
如果此映射包含指定键的映射,则返回true。- Specified by:
-
containsKey在接口Map<K,V> - 重写:
-
containsKey在AbstractMap<K,V>类 - 参数
-
key- 要在此地图中存在的密钥要进行测试 - 结果
-
true如果此映射包含指定键的映射 - 异常
-
ClassCastException- 如果指定的键不能与当前在地图中的键进行比较 -
NullPointerException- 如果指定的键为空,并且该映射使用自然排序,或者其比较器不允许空键
-
containsValue
public boolean containsValue(Object value)
如果此映射将一个或多个键映射到指定的值,则返回true。 更正式地,返回true如果且仅当此映射包含至少一个映射到值v,使得(value==null ? v==null : value.equals(v))。 对于大多数实现,此操作可能需要在地图大小的时间线性。- Specified by:
-
containsValue在接口Map<K,V> - 重写:
-
containsValueAbstractMap<K,V> - 参数
-
value- 要在此地图中存在的值要测试 - 结果
-
true如果映射到value存在; 否则为false - 从以下版本开始:
- 1.2
-
get
public V get(Object key)
返回指定键映射到的值,如果此映射不包含该键的映射,则返回null。更正式地,如果此映射包含从密钥映射
k到值v使得key比较等于k根据地图的排序,则此方法返回v; 否则返回null。 (最多可以有一个这样的映射。)返回值为
null并不一定表示该映射不包含该键的映射; 地图也可能明确地将密钥映射到null。 可以使用containsKey操作来区分这两种情况。- Specified by:
-
get在接口Map<K,V> - 重写:
-
get在AbstractMap<K,V> - 参数
-
key- 要返回其关联值的键 - 结果
-
指定键映射到的值,如果此映射不包含该键的映射,
null - 异常
-
ClassCastException- 如果指定的键不能与当前在地图中的键进行比较 -
NullPointerException- 如果指定的键为空,并且该映射使用自然排序,或者其比较器不允许空键
-
comparator
public Comparator<? super K> comparator()
描述从接口SortedMap复制返回用于订购此地图中的键的比较器,或null如果此地图使用其键的natural ordering 。- Specified by:
-
comparator在接口SortedMap<K,V> - 结果
-
比较器用于对这个地图中的按键进行排序,或者
null如果这个地图使用其键的自然顺序
-
firstKey
public K firstKey()
说明从界面SortedMap复制返回此地图中当前的第一个(最低)键。- Specified by:
-
firstKey在接口SortedMap<K,V> - 结果
- 当前在此地图中的第一(最低)键
- 异常
-
NoSuchElementException- 如果此地图为空
-
lastKey
public K lastKey()
说明从接口SortedMap复制返回当前在此地图中的最后(最高)键。- Specified by:
-
lastKey在接口SortedMap<K,V> - 结果
- 当前在此地图中的最后(最高)键
- 异常
-
NoSuchElementException- 如果该地图为空
-
putAll
public void putAll(Map<? extends K,? extends V> map)
将指定地图的所有映射复制到此地图。 这些映射取代了该地图对当前指定地图中的任何键的任何映射。- Specified by:
-
putAll在接口Map<K,V> - 重写:
-
putAll在AbstractMap<K,V> - 参数
-
map- 要存储在此地图中的映射 - 异常
-
ClassCastException- 如果指定地图中的键或值的类阻止它存储在此映射中 -
NullPointerException- 如果指定的映射为空或指定的映射包含空键,并且此映射不允许空键
-
put
public V put(K key, V value)
将指定的值与此映射中的指定键相关联。 如果地图先前包含了该键的映射,则替换旧值。- Specified by:
-
put在接口Map<K,V> - 重写:
-
put在AbstractMap<K,V> - 参数
-
key- 指定值与之关联的键 -
value- 与指定键相关联的值 - 结果
-
先前的值相关联
key,或null如果没有映射key。 (Anull返回也可以指示以前关联的地图null与key) - 异常
-
ClassCastException- 如果指定的键不能与当前在地图中的键进行比较 -
NullPointerException- 如果指定的键为空,并且该映射使用自然排序,或者其比较器不允许空键
-
remove
public V remove(Object key)
从此TreeMap中删除此键的映射(如果存在)。- Specified by:
-
remove在接口Map<K,V> - 重写:
-
remove在AbstractMap<K,V> - 参数
-
key- 应该删除映射的键 - 结果
-
前一个值与
key相关联,或null如果没有映射key。 (Anull返回也可以指示以前关联的地图null与key)) - 异常
-
ClassCastException- 如果指定的键不能与当前在地图中的键进行比较 -
NullPointerException- 如果指定的键为空,此映射使用自然排序,或者其比较器不允许空键
-
clear
public void clear()
从这张地图中删除所有的映射。 此呼叫返回后,地图将为空。
-
clone
public Object clone()
返回此TreeMap实例的浅拷贝。 (键和值本身不被克隆。)- 重写:
-
clone在AbstractMap<K,V> - 结果
- 这张地图的浅拷贝
- 另请参见:
-
Cloneable
-
firstEntry
public Map.Entry<K,V> firstEntry()
描述从接口NavigableMap复制返回与该地图中的最小键相关联的键值映射,如果地图为空,则null。- Specified by:
-
firstEntry在接口NavigableMap<K,V> - 结果
-
具有最少键的条目,如果此映射为空,
null - 从以下版本开始:
- 1.6
-
lastEntry
public Map.Entry<K,V> lastEntry()
说明从界面NavigableMap复制返回与该地图中最大键相关联的键值映射,如果地图为空,则null。- Specified by:
-
lastEntry在接口NavigableMap<K,V> - 结果
-
一个有最大密钥的条目,如果该地图为空,
null - 从以下版本开始:
- 1.6
-
pollFirstEntry
public Map.Entry<K,V> pollFirstEntry()
描述从接口NavigableMap复制删除并返回与该地图中的最小键相关联的键值映射,如果地图为空,则null。- Specified by:
-
pollFirstEntry在接口NavigableMap<K,V> - 结果
-
删除该地图的第一个条目,如果该地图为空,
null - 从以下版本开始:
- 1.6
-
pollLastEntry
public Map.Entry<K,V> pollLastEntry()
说明从界面:NavigableMap复制删除并返回与该地图中最大键相关联的键值映射,如果地图为空,则null。- Specified by:
-
pollLastEntry在接口NavigableMap<K,V> - 结果
-
删除该地图的最后一个条目,如果此地图为空,
null - 从以下版本开始:
- 1.6
-
lowerEntry
public Map.Entry<K,V> lowerEntry(K key)
说明从接口NavigableMap复制返回与最大密钥相关联的密钥值映射严格小于给定密钥,如果没有这样的密钥,则null。- Specified by:
-
lowerEntry在接口NavigableMap<K,V> - 参数
-
key- 关键 - 结果
-
一个条目的最大键值小于
key,如果没有这样的键null - 异常
-
ClassCastException- 如果指定的键不能与当前在地图中的键进行比较 -
NullPointerException- 如果指定的键为空,并且该映射使用自然排序,或者其比较器不允许空键 - 从以下版本开始:
- 1.6
-
lowerKey
public K lowerKey(K key)
描述从接口NavigableMap复制返回严格小于给定键的最大键,如果没有这样的键,则返回null。- Specified by:
-
lowerKey在接口NavigableMap<K,V> - 参数
-
key- 关键 - 结果
-
最大的钥匙要少于
key,或者是null如果没有这样的钥匙 - 异常
-
ClassCastException- 如果指定的键不能与当前在地图中的键进行比较 -
NullPointerException- 如果指定的键为空,并且该映射使用自然排序,或者其比较器不允许空键 - 从以下版本开始:
- 1.6
-
floorEntry
public Map.Entry<K,V> floorEntry(K key)
说明从界面NavigableMap复制返回与小于或等于给定键的最大键相关联的键值映射,如果没有此键,则null。- Specified by:
-
floorEntry在接口NavigableMap<K,V> - 参数
-
key- 关键 - 结果
-
最大密钥小于或等于
key,如果没有这样的密钥,null - 异常
-
ClassCastException- 如果指定的键不能与当前在地图中的键进行比较 -
NullPointerException- 如果指定的键为空,并且该映射使用自然排序,或者其比较器不允许空键 - 从以下版本开始:
- 1.6
-
floorKey
public K floorKey(K key)
说明从接口NavigableMap复制返回小于或等于给定键的最大键,如果没有这样的键,则null。- Specified by:
-
floorKey在接口NavigableMap<K,V> - 参数
-
key- 关键 - 结果
-
最大的钥匙小于或等于
key,或null如果没有这样的钥匙 - 异常
-
ClassCastException- 如果指定的键不能与当前在地图中的键进行比较 -
NullPointerException- 如果指定的键为空,并且该映射使用自然排序,或者其比较器不允许空键 - 从以下版本开始:
- 1.6
-
ceilingEntry
public Map.Entry<K,V> ceilingEntry(K key)
说明从界面NavigableMap复制返回与大于或等于给定键的最小键相关联的键值映射,如果没有此键,则null。- Specified by:
-
ceilingEntry在接口NavigableMap<K,V> - 参数
-
key- 关键 - 结果
-
一个条目的最小键大于或等于
key,或null如果没有这样的键 - 异常
-
ClassCastException- 如果指定的键不能与当前在地图中的键进行比较 -
NullPointerException- 如果指定的键为空,并且该映射使用自然排序,或者其比较器不允许空键 - 从以下版本开始:
- 1.6
-
ceilingKey
public K ceilingKey(K key)
描述从接口NavigableMap复制返回大于或等于给定键的null键,如果没有此键,则null。- Specified by:
-
ceilingKey在接口NavigableMap<K,V> - 参数
-
key- 关键 - 结果
-
最小键大于或等于
key,或null如果没有这样的键 - 异常
-
ClassCastException- 如果指定的键不能与当前在地图中的键进行比较 -
NullPointerException- 如果指定的键为空,并且该映射使用自然排序,或者其比较器不允许空值 - 从以下版本开始:
- 1.6
-
higherEntry
public Map.Entry<K,V> higherEntry(K key)
说明从接口NavigableMap复制返回与最小键相关联的键值映射严格大于给定的键,如果没有这样的键,则null。- Specified by:
-
higherEntry在接口NavigableMap<K,V> - 参数
-
key- 关键 - 结果
-
一个条目的最小键大于
key,或null如果没有这样的键 - 异常
-
ClassCastException- 如果指定的键不能与当前在地图中的键进行比较 -
NullPointerException- 如果指定的键为空,并且此映射使用自然排序,或者其比较器不允许空键 - 从以下版本开始:
- 1.6
-
higherKey
public K higherKey(K key)
说明从界面NavigableMap复制返回严格大于给定键的最小键,如果没有这样的键,则返回null。- Specified by:
-
higherKey在接口NavigableMap<K,V> - 参数
-
key- 关键 - 结果
-
最小键大于
key,或null如果没有这样的键 - 异常
-
ClassCastException- 如果指定的键不能与当前在地图中的键进行比较 -
NullPointerException- 如果指定的键为空,此映射使用自然排序,或者其比较器不允许空键 - 从以下版本开始:
- 1.6
-
keySet
public Set<K> keySet()
返回此地图中包含的键的Set视图。该集合的迭代器按升序返回密钥。 集合的分配器是late-binding , 故障快速 ,另外报告
Spliterator.SORTED和Spliterator.ORDERED,遇到的订单是升序的关键顺序。 该spliterator的比较(见Spliterator.getComparator())是null如果树映射的比较(见comparator())是null。 否则,拼接器的比较器与树形图的比较器相同或者施加相同的总排序。该集合由地图支持,因此对地图的更改将反映在集合中,反之亦然。 如果映射被修改,而该集合中的迭代正在进行(除了通过迭代器自己的
remove操作),迭代的结果是未定义的。 该组支持元件移除,即从映射中相应的映射,经由Iterator.remove,Set.remove,removeAll,retainAll,和clear操作。 它不支持add或addAll操作。
-
navigableKeySet
public NavigableSet<K> navigableKeySet()
说明从接口NavigableMap复制返回此地图中包含的键的NavigableSet视图。 该集合的迭代器按升序返回密钥。 该集合由地图支持,因此对地图的更改将反映在集合中,反之亦然。 如果在集合中的迭代正在进行中修改映射(除了通过迭代器自己的remove操作),迭代的结果是未定义的。 该组支持元件移除,即从映射中相应的映射,经由Iterator.remove,Set.remove,removeAll,retainAll,和clear操作。 它不支持add或addAll操作。- Specified by:
-
navigableKeySet在接口NavigableMap<K,V> - 结果
- 该地图中的键的可导航集合视图
- 从以下版本开始:
- 1.6
-
descendingKeySet
public NavigableSet<K> descendingKeySet()
说明从接口NavigableMap复制返回此映射中包含的键的相反顺序NavigableSet。 集合的迭代器按降序返回密钥。 该集合由地图支持,因此对地图的更改将反映在集合中,反之亦然。 如果在集合中的迭代正在进行中修改映射(除了通过迭代器自己的remove操作),迭代的结果是未定义的。 该组支持元件移除,即从映射中相应的映射,经由Iterator.remove,Set.remove,removeAll,retainAll,和clear操作。 它不支持add或addAll操作。- Specified by:
-
descendingKeySet在接口NavigableMap<K,V> - 结果
- 该地图中的键的反向导航设置视图
- 从以下版本开始:
- 1.6
-
values
public Collection<V> values()
返回此地图中包含的值的Collection视图。集合的迭代器按照相应键的升序返回值。 集合的分配器是late-binding , 故障快速 ,另外报告
Spliterator.ORDERED,遇到的顺序是相应键的升序。集合由地图支持,因此对地图的更改将反映在集合中,反之亦然。 如果在集合中的迭代正在进行中修改映射(除了通过迭代器自己的
remove操作),迭代的结果是未定义的。 该collection支持元素移除,即从映射中相应的映射,经由Iterator.remove,Collection.remove,removeAll,retainAll和clear操作。 它不支持add或addAll操作。
-
entrySet
public Set<Map.Entry<K,V>> entrySet()
返回此地图中包含的映射的Set视图。集合的迭代器按升序键顺序返回条目。 集合的分配器是late-binding , 失败快速 ,另外报告
Spliterator.SORTED和Spliterator.ORDERED,遇到订单是升序的关键顺序。该集合由地图支持,因此对地图的更改将反映在集合中,反之亦然。 如果在集合中的迭代正在进行时修改映射(除了通过迭代器自己的
remove操作,或者通过迭代器返回的映射条目上的setValue操作),迭代的结果是未定义的。 该组支持元件移除,即从映射中相应的映射,经由Iterator.remove,Set.remove,removeAll,retainAll和clear操作。 它不支持add或addAll操作。
-
descendingMap
public NavigableMap<K,V> descendingMap()
说明从接口NavigableMap复制返回此映射中包含的映射的反向排序视图。 降序地图由该地图支持,所以对地图的更改反映在降序地图中,反之亦然。 如果在映射的集合视图中的迭代正在进行(除了通过迭代器自己的remove操作),否则修改了任一映射,则迭代的结果是未定义的。返回的地图的订单等同于
Collections.reverseOrder(comparator())。 表达m.descendingMap().descendingMap()返回一个视图的m实质上等同于m。- Specified by:
-
descendingMap在接口NavigableMap<K,V> - 结果
- 这张地图的倒序视图
- 从以下版本开始:
- 1.6
-
subMap
public NavigableMap<K,V> subMap(K fromKey, boolean fromInclusive, K toKey, boolean toInclusive)
描述从接口NavigableMap复制返回此地图部分的视图,其关键字范围从fromKey到toKey。 如果fromKey和toKey相等,则返回的地图为空,除非是fromInclusive和toInclusive都为真。 返回的地图由此地图支持,因此返回的地图中的更改将反映在该地图中,反之亦然。 返回的地图支持该地图支持的所有可选地图操作。返回的地图会抛出一个
IllegalArgumentException,试图在其范围之外插入一个键,或构造一个其端点位于其范围之外的子地图。- Specified by:
-
subMap在接口NavigableMap<K,V> - 参数
-
fromKey- 返回地图中键的低端点 -
fromInclusive-true如果低端点要包含在返回的视图中 -
toKey- 返回地图中的键的高端点 -
toInclusive-true如果高端点要包含在返回的视图中 - 结果
-
该地图的部分视图的视图范围从
fromKey到toKey - 异常
-
ClassCastException- 如果fromKey和toKey无法使用该地图的比较器相互比较(或者,如果地图没有比较器,则使用自然排序)。 如果fromKey或toKey无法与当前在地图中的键进行比较,则实施可能但不是必须抛出此异常。 -
NullPointerException- 如果fromKey或toKey为空,此映射使用自然排序,或其比较器不允许空键 -
IllegalArgumentException- 如果fromKey大于toKey; 或者如果该地图本身具有有限的范围,并且fromKey或toKey位于范围的范围之外 - 从以下版本开始:
- 1.6
-
headMap
public NavigableMap<K,V> headMap(K toKey, boolean inclusive)
说明从接口NavigableMap复制返回该地图部分的视图,其键值小于(或等于,如果inclusive为true)toKey。 返回的地图由此地图支持,因此返回的地图中的更改将反映在该地图中,反之亦然。 返回的地图支持该地图支持的所有可选地图操作。返回的地图会抛出一个
IllegalArgumentException,试图在其范围之外插入一个键。- Specified by:
-
headMap在接口NavigableMap<K,V> - 参数
-
toKey- 返回地图中的键的高端点 -
inclusive-true如果高端点要包含在返回的视图中 - 结果
-
关键字小于(或等于,如果
inclusive为真)的地图部分的视图toKey - 异常
-
ClassCastException- 如果toKey与该地图的比较器不兼容(或者如果地图没有比较器,如果toKey不实现Comparable)。 如果toKey无法与当前在地图中的键进行比较,则实施可能但不是必须抛出此异常。 -
NullPointerException- 如果toKey为空,此映射使用自然排序,或其比较器不允许空键 -
IllegalArgumentException- 如果此地图本身有限制范围,而toKey位于范围范围之外 - 从以下版本开始:
- 1.6
-
tailMap
public NavigableMap<K,V> tailMap(K fromKey, boolean inclusive)
描述从接口NavigableMap复制返回该地图部分的视图,其键大于(或等于,如果inclusive为真)fromKey。 返回的地图由此地图支持,因此返回的地图中的更改将反映在该地图中,反之亦然。 返回的地图支持该地图支持的所有可选地图操作。返回的地图会抛出一个
IllegalArgumentException,试图在其范围之外插入一个键。- Specified by:
-
tailMap在接口NavigableMap<K,V> - 参数
-
fromKey- 返回地图中键的低端点 -
inclusive-true如果低端点要包含在返回的视图中 - 结果
-
键的大小(或等于,如果
inclusive为真)的地图部分的视图fromKey - 异常
-
ClassCastException- 如果fromKey与此地图的比较器不兼容(或者如果地图没有比较器,如果fromKey不实现Comparable)。 如果fromKey无法与当前在地图中的键进行比较,则实施可能但不是必须抛出此异常。 -
NullPointerException- 如果fromKey为空,并且此映射使用自然排序,或者其比较器不允许空键 -
IllegalArgumentException- 如果此地图本身具有限制范围,并且fromKey位于范围界限之外 - 从以下版本开始:
- 1.6
-
subMap
public SortedMap<K,V> subMap(K fromKey, K toKey)
描述从接口NavigableMap复制返回该地图部分的视图,其关键字范围从fromKey(含)到toKey,独占。 (如果fromKey和toKey相等,则返回的地图为空。)返回的地图由该地图支持,所以返回地图中的更改会反映在该地图中,反之亦然。 返回的地图支持该地图支持的所有可选地图操作。返回的地图将抛出一个
IllegalArgumentException,试图在其范围之外插入一个键。相当于
subMap(fromKey, true, toKey, false)。- Specified by:
-
subMap在接口NavigableMap<K,V> - Specified by:
-
subMap在接口SortedMap<K,V> - 参数
-
fromKey- 返回地图中的键的低端点(含) -
toKey- 返回地图中的键的高端点(排他) - 结果
-
该地图的部分视图,其关键范围从
fromKey(含)到toKey,独占 - 异常
-
ClassCastException- 如果fromKey和toKey无法使用该地图的比较器相互比较(或者,如果地图没有比较器,则使用自然排序)。 如果fromKey或toKey无法与当前在地图中的键进行比较,则实施可能但不是必须抛出此异常。 -
NullPointerException- 如果fromKey或toKey为空,此映射使用自然排序,或其比较器不允许空键 -
IllegalArgumentException- 如果fromKey大于toKey; 或者如果该地图本身具有有限的范围,并且fromKey或toKey位于范围的范围之外
-
headMap
public SortedMap<K,V> headMap(K toKey)
描述从接口NavigableMap复制返回该地图部分的视图,其密钥严格小于toKey。 返回的地图由此地图支持,因此返回的地图中的更改将反映在该地图中,反之亦然。 返回的地图支持该地图支持的所有可选地图操作。返回的地图将抛出一个
IllegalArgumentException,试图在其范围之外插入一个键。相当于
headMap(toKey, false)。- Specified by:
-
headMap在接口NavigableMap<K,V> - Specified by:
-
headMap在接口SortedMap<K,V> - 参数
-
toKey- 返回地图中的键的高端点(排他) - 结果
-
该地图的部分密钥严格小于
toKey - 异常
-
ClassCastException- 如果toKey与此映射的比较器不兼容(或者,如果映射没有比较器,如果toKey不实现Comparable)。 如果toKey无法与当前在地图中的键进行比较,则实施可能但不是必须抛出此异常。 -
NullPointerException- 如果toKey为空,并且此映射使用自然排序,或者其比较器不允许空键 -
IllegalArgumentException- 如果此地图本身有限制范围,并且toKey位于范围界限之外
-
tailMap
public SortedMap<K,V> tailMap(K fromKey)
说明从接口NavigableMap复制返回此地图部分的视图,其键大于或等于fromKey。 返回的地图由此地图支持,因此返回的地图中的更改将反映在该地图中,反之亦然。 返回的地图支持该地图支持的所有可选地图操作。返回的地图会抛出一个
IllegalArgumentException,试图在其范围之外插入一个键。相当于
tailMap(fromKey, true)。- Specified by:
-
tailMap在接口NavigableMap<K,V> - Specified by:
-
tailMap在接口SortedMap<K,V> - 参数
-
fromKey- 返回地图中的键的低端点(含) - 结果
-
该地图的部分的视图,其键大于或等于
fromKey - 异常
-
ClassCastException- 如果fromKey与此地图的比较器不兼容(或者,如果地图没有比较器,如果fromKey不实现Comparable)。 如果fromKey无法与当前在地图中的键进行比较,则实施可能但不是必须抛出此异常。 -
NullPointerException- 如果fromKey为空,并且此映射使用自然排序,或其比较器不允许空键 -
IllegalArgumentException- 如果此地图本身有限制范围,并且fromKey位于范围界限之外
-
forEach
public void forEach(BiConsumer<? super K,? super V> action)
说明从接口Map复制对此映射中的每个条目执行给定的操作,直到所有条目都被处理或操作引发异常。 除非实现类另有指定,否则按照进入设置迭代的顺序执行操作(如果指定了迭代顺序)。操作引发的异常被转发给调用者。
-
replaceAll
public void replaceAll(BiFunction<? super K,? super V,? extends V> function)
说明从接口Map复制将每个条目的值替换为对该条目调用给定函数的结果,直到所有条目都被处理或该函数抛出异常。 函数抛出的异常被转发给调用方。- Specified by:
-
replaceAll在接口Map<K,V> - 参数
-
function- 应用于每个条目的功能
-
-