模块 java.base
 java.util

接口 NavigableMap<K,V>

类型参数:
K - 此map维护的键类型
V - 映射值的类型
所有父级接口:
Map<K,V> , SortedMap<K,V>
所有已知的子接口:
ConcurrentNavigableMap<K,V>
所有已知的实现类:
ConcurrentSkipListMap , TreeMap

public interface NavigableMap<K,V> extends SortedMap <K,V>
SortedMap 扩展了导航方法,返回给定搜索目标的最接近匹配项。方法 lowerEntry(K) floorEntry(K) ceilingEntry(K) higherEntry(K) 返回与键关联的 Map.Entry 对象,分别小于、小于或等于、大于或等于和大于给定键,如果没有这样的键,则返回 null。同样,方法 lowerKey(K) floorKey(K) ceilingKey(K) higherKey(K) 仅返回关联的键。所有这些方法都是为定位而不是遍历条目而设计的。

NavigableMap 可以按升序或降序键顺序访问和遍历。 descendingMap() 方法返回map的视图,其中所有关系和方向方法的意义都颠倒了。上升操作和视图的性能可能比下降操作和视图的性能更快。方法 subMap(K, boolean, K, boolean) headMap(K, boolean) tailMap(K, boolean) 与名称相似的 SortedMap 方法的不同之处在于它接受额外的参数来描述下限和上限是包含还是排除。任何 NavigableMap 的子图必须实现 NavigableMap 接口。

此接口还定义了方法 firstEntry() pollFirstEntry() lastEntry() pollLastEntry() 返回和/或删除最小和最大映射(如果存在),否则返回 null

条目返回方法的实现预计会返回 Map.Entry 对,表示它们生成时的映射快照,因此通常 not 支持可选的 Entry.setValue 方法。但是请注意,可以使用方法 put 更改关联map中的映射。

方法 subMap(K, K) headMap(K) tailMap(K) 被指定返回 SortedMap 以允许对 SortedMap 的现有实现进行兼容改造以实现 NavigableMap ,但鼓励此接口的扩展和实现覆盖这些方法以返回 NavigableMap 。同样,可以覆盖 SortedMap.keySet() 以返回 NavigableSet

此接口是 Java 集合框架 的成员。

自从:
1.6
  • 方法详情

    • lowerEntry

      Map.Entry <K ,V > lowerEntry(K  key)
      返回与严格小于给定键的最大键关联的键值映射,如果没有这样的键,则返回 null
      参数:
      key - 钥匙
      返回:
      最大键小于 key 的条目,如果没有这样的键,则为 null
      抛出:
      ClassCastException - 如果无法将指定键与当前map中的键进行比较
      NullPointerException - 如果指定键为空且此map不允许空键
    • lowerKey

      K  lowerKey(K  key)
      返回严格小于给定键的最大键,如果没有这样的键,则返回 null
      参数:
      key - 钥匙
      返回:
      小于 key 的最大密钥,如果没有这样的密钥,则为 null
      抛出:
      ClassCastException - 如果无法将指定键与当前map中的键进行比较
      NullPointerException - 如果指定键为空且此map不允许空键
    • floorEntry

      Map.Entry <K ,V > floorEntry(K  key)
      返回与小于或等于给定键的最大键关联的键值映射,如果没有这样的键,则返回 null
      参数:
      key - 钥匙
      返回:
      最大键小于或等于 key 的条目,如果没有这样的键,则为 null
      抛出:
      ClassCastException - 如果无法将指定键与当前map中的键进行比较
      NullPointerException - 如果指定键为空且此map不允许空键
    • floorKey

      K  floorKey(K  key)
      返回小于或等于给定键的最大键,如果没有这样的键,则返回 null
      参数:
      key - 钥匙
      返回:
      小于或等于 key 的最大键,如果没有这样的键,则为 null
      抛出:
      ClassCastException - 如果无法将指定键与当前map中的键进行比较
      NullPointerException - 如果指定键为空且此map不允许空键
    • ceilingEntry

      Map.Entry <K ,V > ceilingEntry(K  key)
      返回与大于或等于给定键的最小键关联的键值映射,如果没有这样的键,则返回 null
      参数:
      key - 钥匙
      返回:
      最小键大于或等于 key 的条目,如果没有这样的键,则为 null
      抛出:
      ClassCastException - 如果无法将指定键与当前map中的键进行比较
      NullPointerException - 如果指定键为空且此map不允许空键
    • ceilingKey

      K  ceilingKey(K  key)
      返回大于或等于给定键的最小键,如果没有这样的键,则返回 null
      参数:
      key - 钥匙
      返回:
      大于或等于 key 的最小键,如果没有这样的键,则为 null
      抛出:
      ClassCastException - 如果无法将指定键与当前map中的键进行比较
      NullPointerException - 如果指定键为空且此map不允许空键
    • higherEntry

      Map.Entry <K ,V > higherEntry(K  key)
      返回与严格大于给定键的最小键关联的键值映射,如果没有这样的键,则返回 null
      参数:
      key - 钥匙
      返回:
      最小键大于 key 的条目,如果没有这样的键,则为 null
      抛出:
      ClassCastException - 如果无法将指定键与当前map中的键进行比较
      NullPointerException - 如果指定键为空且此map不允许空键
    • higherKey

      K  higherKey(K  key)
      返回严格大于给定键的最小键,如果没有这样的键,则返回 null
      参数:
      key - 钥匙
      返回:
      大于 key 的最小键,或者 null 如果没有这样的键
      抛出:
      ClassCastException - 如果无法将指定键与当前map中的键进行比较
      NullPointerException - 如果指定键为空且此map不允许空键
    • firstEntry

      Map.Entry <K ,V > firstEntry()
      返回与此map中最少键关联的键值映射,如果map为空,则返回 null
      返回:
      具有最少键的条目,如果此map为空,则为 null
    • lastEntry

      Map.Entry <K ,V > lastEntry()
      返回与此map中最大键关联的键值映射,如果map为空,则返回 null
      返回:
      具有最大键的条目,如果此map为空,则为 null
    • pollFirstEntry

      Map.Entry <K ,V > pollFirstEntry()
      删除并返回与此map中最小键关联的键值映射,如果map为空,则返回 null
      返回:
      此map的已删除第一个条目,如果此map为空,则为 null
    • pollLastEntry

      Map.Entry <K ,V > pollLastEntry()
      删除并返回与此map中最大键关联的键值映射,如果map为空,则返回 null
      返回:
      此map的已删除最后一个条目,如果此map为空,则为 null
    • descendingMap

      NavigableMap <K ,V > descendingMap()
      返回此map中包含的映射的逆序视图。降序图受此map支持,因此对map的更改会反映在降序图中,反之亦然。如果在对任一映射的集合视图进行迭代时修改了任一映射(通过迭代器自己的 remove 操作除外),则迭代的结果是未定义的。

      返回的map的排序等同于 Collections.reverseOrder (comparator()) 。表达式 m.descendingMap().descendingMap() 返回 m 的视图,本质上等同于 m

      返回:
      这张map的倒序视图
    • descendingKeySet

      NavigableSet <K > descendingKeySet()
      返回此map中包含的键的逆序 NavigableSet 视图。该集合的迭代器按降序返回键。该集合由map支持,因此对map的更改会反映在集合中,反之亦然。如果在对集合进行迭代时修改map(除了通过迭代器自己的 remove 操作),迭代的结果是不确定的。该集合支持元素删除,即通过 Iterator.removeSet.removeremoveAllretainAllclear 操作从map中删除相应的映射。它不支持 addaddAll 操作。
      返回:
      此map中键的逆序可导航集视图
    • subMap

      NavigableMap <K ,V > subMap(K  fromKey, boolean fromInclusive, K  toKey, boolean toInclusive)
      返回此map部分的视图,其键范围从 fromKeytoKey 。如果 fromKeytoKey 相等,则返回的映射为空,除非 fromInclusivetoInclusive 都为真。返回的map受此map支持,因此返回map中的更改会反映在此map中,反之亦然。返回的map支持此map支持的所有可选map操作。

      返回的映射将抛出 IllegalArgumentException 尝试插入其范围之外的键,或构建其端点位于其范围之外的子图。

      参数:
      fromKey - 返回map中键的低端点
      fromInclusive - true 如果低端点要包含在返回的视图中
      toKey - 返回map中键的高端点
      toInclusive - true 如果高端点要包含在返回的视图中
      返回:
      此map的部分视图,其键范围从 fromKeytoKey
      抛出:
      ClassCastException - 如果 fromKeytoKey 无法使用此map的比较器相互比较(或者,如果map没有比较器,则使用自然排序)。如果无法将 fromKeytoKey 与当前map中的键进行比较,实现可能会(但不是必须)抛出此异常。
      NullPointerException - 如果 fromKeytoKey 为空且此map不允许空键
      IllegalArgumentException - 如果 fromKey 大于 toKey ;或者如果这个map本身有一个限制范围,并且 fromKeytoKey 位于范围的边界之外
    • headMap

      NavigableMap <K ,V > headMap(K  toKey, boolean inclusive)
      返回此map部分的视图,其键小于(或等于,如果 inclusive 为真) toKey 。返回的map受此map支持,因此返回map中的更改会反映在此map中,反之亦然。返回的map支持此map支持的所有可选map操作。

      返回的映射将在尝试插入其范围之外的键时抛出 IllegalArgumentException

      参数:
      toKey - 返回map中键的高端点
      inclusive - true 如果高端点要包含在返回的视图中
      返回:
      此map的部分视图,其键小于(或等于,如果inclusive为真)toKey
      抛出:
      ClassCastException - 如果 toKey 与此map的比较器不兼容(或者,如果map没有比较器,如果 toKey 未实现 Comparable )。如果无法将 toKey 与当前map中的键进行比较,实现可能会(但不是必须)抛出此异常。
      NullPointerException - 如果 toKey 为空且此map不允许空键
      IllegalArgumentException - 如果这个map本身有一个限制范围,并且 toKey 位于范围的边界之外
    • tailMap

      NavigableMap <K ,V > tailMap(K  fromKey, boolean inclusive)
      返回此map部分的视图,其键大于(或等于,如果 inclusive 为真) fromKey 。返回的map受此map支持,因此返回map中的更改会反映在此map中,反之亦然。返回的map支持此map支持的所有可选map操作。

      返回的映射将在尝试插入其范围之外的键时抛出 IllegalArgumentException

      参数:
      fromKey - 返回map中键的低端点
      inclusive - true 如果低端点要包含在返回的视图中
      返回:
      此map的部分视图,其键大于(或等于,如果inclusive为真)fromKey
      抛出:
      ClassCastException - 如果 fromKey 与此map的比较器不兼容(或者,如果map没有比较器,如果 fromKey 未实现 Comparable )。如果无法将 fromKey 与当前map中的键进行比较,实现可能会(但不是必须)抛出此异常。
      NullPointerException - 如果 fromKey 为空且此map不允许空键
      IllegalArgumentException - 如果这个map本身有一个限制范围,并且 fromKey 位于范围的边界之外
    • subMap

      SortedMap <K ,V > subMap(K  fromKey, K  toKey)
      返回此map部分的视图,其键范围从 fromKey(含)到 toKey(不包含)。 (如果 fromKeytoKey 相等,则返回的map为空。)返回的map受此map支持,因此返回map中的更改会反映在此map中,反之亦然。返回的map支持此map支持的所有可选map操作。

      返回的映射将在尝试插入其范围之外的键时抛出 IllegalArgumentException

      相当于 subMap(fromKey, true, toKey, false)

      指定者:
      subMap 在接口 SortedMap<K,V>
      参数:
      fromKey - 返回map中键的低端点(包括)
      toKey - 返回map中键的高端点(不包括)
      返回:
      此map的部分视图,其键范围从 fromKeytoKey 不包括在内
      抛出:
      ClassCastException - 如果 fromKeytoKey 无法使用此map的比较器相互比较(或者,如果map没有比较器,则使用自然排序)。如果无法将 fromKeytoKey 与当前map中的键进行比较,实现可能会(但不是必须)抛出此异常。
      NullPointerException - 如果 fromKeytoKey 为空且此map不允许空键
      IllegalArgumentException - 如果 fromKey 大于 toKey ;或者如果这个map本身有一个限制范围,并且 fromKeytoKey 位于范围的边界之外
    • headMap

      SortedMap <K ,V > headMap(K  toKey)
      返回此map部分的视图,其键严格小于 toKey 。返回的map受此map支持,因此返回map中的更改会反映在此map中,反之亦然。返回的map支持此map支持的所有可选map操作。

      返回的映射将在尝试插入其范围之外的键时抛出 IllegalArgumentException

      相当于 headMap(toKey, false)

      指定者:
      headMap 在接口 SortedMap<K,V>
      参数:
      toKey - 返回map中键的高端点(不包括)
      返回:
      此map的键严格小于 toKey 的部分的视图
      抛出:
      ClassCastException - 如果 toKey 与此map的比较器不兼容(或者,如果map没有比较器,如果 toKey 未实现 Comparable )。如果无法将 toKey 与当前map中的键进行比较,实现可能会(但不是必须)抛出此异常。
      NullPointerException - 如果 toKey 为空且此map不允许空键
      IllegalArgumentException - 如果这个map本身有一个限制范围,并且 toKey 位于范围的边界之外
    • tailMap

      SortedMap <K ,V > tailMap(K  fromKey)
      返回此map的键大于或等于 fromKey 的部分的视图。返回的map受此map支持,因此返回map中的更改会反映在此map中,反之亦然。返回的map支持此map支持的所有可选map操作。

      返回的映射将在尝试插入其范围之外的键时抛出 IllegalArgumentException

      相当于 tailMap(fromKey, true)

      指定者:
      tailMap 在接口 SortedMap<K,V>
      参数:
      fromKey - 返回map中键的低端点(包括)
      返回:
      此map的键大于或等于 fromKey 的部分的视图
      抛出:
      ClassCastException - 如果 fromKey 与此map的比较器不兼容(或者,如果map没有比较器,如果 fromKey 未实现 Comparable )。如果无法将 fromKey 与当前map中的键进行比较,实现可能会(但不是必须)抛出此异常。
      NullPointerException - 如果 fromKey 为空且此map不允许空键
      IllegalArgumentException - 如果这个map本身有一个限制范围,并且 fromKey 位于范围的边界之外