Module  java.base
软件包  java.util

Interface NavigableMap<K,V>

  • 参数类型
    K - 由此地图维护的键的类型
    V - 映射值的类型
    All Superinterfaces:
    Map<K,V>SortedMap<K,V>
    All Known Subinterfaces:
    ConcurrentNavigableMap<K,V>
    所有已知实现类:
    ConcurrentSkipListMapTreeMap


    public interface NavigableMap<K,V>
    extends SortedMap<K,V>
    A SortedMap扩展了导航方法返回给定搜索目标的最接近的匹配。 方法lowerEntry(K)floorEntry(K)ceilingEntry(K)higherEntry(K)返回Map.Entry与键相关联的对象比比大于给定的密钥分别更少,小于或等于,大于或等于,大于,返回null如果不存在这样的密钥。 同样,方法lowerKey(K)floorKey(K)ceilingKey(K) ,并higherKey(K)回报只有相关联的密钥。 所有这些方法都设计用于定位,而不是遍历条目。

    A NavigableMap可以按升序或降序键顺序访问和遍历。 descendingMap()方法返回地图的视图,其中所有关系和方向方法的意义都反转。 上升操作和观点的表现可能比降序更快。 方法subMap(K, boolean, K, boolean)headMap(K, boolean)tailMap(K, boolean)从等命名的不同SortedMap在接受描述的下限和上限是否是包含性的抗排斥附加参数的方法。 任何NavigableMapNavigableMap必须实现NavigableMap接口。

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

    预期返回方法的实现将返回Map.Entry对,表示生成映射的快照,因此通常支持可选的Entry.setValue方法。 但是请注意,可以使用方法put更改关联地图中的映射。

    方法subMap(K, K)headMap(K) ,并tailMap(K)被指定为返回SortedMap ,以允许现有的实现SortedMap能相容地改进来实现NavigableMap ,但鼓励扩展和该接口的实现重写这些方法返回NavigableMap 同样, SortedMap.keySet()可以覆盖以返回NavigableSet

    此接口是Java Collections Framework的成员。

    从以下版本开始:
    1.6
    • 方法详细信息

      • lowerEntry

        Map.Entry<K,V> lowerEntry​(K key)
        返回与最大密钥相关联的密钥值映射严格小于给定密钥,如果没有这样的密钥,则 null
        参数
        key - 关键
        结果
        一个条目的最大键值小于 key ,或者是 null如果没有这样的键
        异常
        ClassCastException - 如果指定的键不能与当前在地图中的键进行比较
        NullPointerException - 如果指定的键为空,并且此映射不允许空键
      • lowerKey

        K lowerKey​(K key)
        返回严格小于给定键的最大键,如果没有这样的键,则返回 null
        参数
        key - 关键
        结果
        最大的钥匙小于 key ,或 null如果没有这样的钥匙
        异常
        ClassCastException - 如果指定的键不能与当前在地图中的键进行比较
        NullPointerException - 如果指定的键为空,并且此映射不允许空键
      • floorEntry

        Map.Entry<K,V> floorEntry​(K key)
        返回与小于或等于给定键的最大键相关联的键值映射,如果没有此键,则 null
        参数
        key - 关键
        结果
        最大密钥小于或等于 key ,如果没有这样的密钥, null
        异常
        ClassCastException - 如果指定的键不能与当前在地图中的键进行比较
        NullPointerException - 如果指定的键为空,并且此映射不允许空键
      • floorKey

        K floorKey​(K key)
        返回小于或等于给定键的最大键,如果没有这样的键,则 null
        参数
        key - 关键
        结果
        最大的钥匙小于或等于 key ,或 null如果没有这样的钥匙
        异常
        ClassCastException - 如果指定的键不能与当前在地图中的键进行比较
        NullPointerException - 如果指定的键为空,并且此映射不允许空键
      • ceilingEntry

        Map.Entry<K,V> ceilingEntry​(K key)
        返回与大于或等于给定键的最小键相关联的键值映射,如果没有此键,则 null
        参数
        key - 关键
        结果
        最小键大于或等于 key ,如果没有这样的键, null
        异常
        ClassCastException - 如果指定的键不能与当前在地图中的键进行比较
        NullPointerException - 如果指定的键为空,并且此映射不允许空键
      • ceilingKey

        K ceilingKey​(K key)
        返回大于或等于给定键的 null键,如果没有此键,则 null
        参数
        key - 关键
        结果
        最小键大于或等于 key ,或 null如果没有这样的键
        异常
        ClassCastException - 如果指定的键不能与当前在地图中的键进行比较
        NullPointerException - 如果指定的键为空,并且此映射不允许空键
      • higherEntry

        Map.Entry<K,V> higherEntry​(K key)
        返回与最小密钥相关联的密钥值映射严格大于给定密钥,如果没有这样的密钥则 null
        参数
        key - 关键
        结果
        一个条目的最小键大于 key ,或 null如果没有这样的键
        异常
        ClassCastException - 如果指定的键不能与当前在地图中的键进行比较
        NullPointerException - 如果指定的键为空,并且此映射不允许空键
      • higherKey

        K higherKey​(K key)
        返回严格大于给定键的最小键,如果没有这样的键,则返回 null
        参数
        key - 关键
        结果
        最小键大于 key ,或 null如果没有这样的键
        异常
        ClassCastException - 如果指定的键不能与当前在地图中的键进行比较
        NullPointerException - 如果指定的键为空,并且该映射不允许空键
      • firstEntry

        Map.Entry<K,V> firstEntry​()
        返回与该地图中的最小键相关联的键值映射,如果地图为空,则 null
        结果
        具有最少键的条目,如果该地图为空, null
      • lastEntry

        Map.Entry<K,V> lastEntry​()
        返回与该地图中最大键相关联的键值映射,如果地图为空,则 null
        结果
        一个有最大密钥的条目,如果该地图为空, null
      • pollFirstEntry

        Map.Entry<K,V> pollFirstEntry​()
        删除并返回与该地图中的最小键相关联的键值映射,如果地图为空,则 null
        结果
        该地图被删除的第一个条目,如果该地图为空, null
      • pollLastEntry

        Map.Entry<K,V> pollLastEntry​()
        删除并返回与该地图中最大密钥相关联的键值映射,如果地图为空,则 null
        结果
        删除该地图的最后一个条目,如果此地图为空, null
      • descendingMap

        NavigableMap<K,V> descendingMap​()
        返回此映射中包含的映射的反向排序视图。 降序地图由该地图支持,所以对地图的更改反映在降序地图中,反之亦然。 如果在映射的集合视图上进行迭代(如通过迭代器自己的remove操作除外)修改任一映射,则迭代结果未定义。

        返回的地图的订单等同于Collections.reverseOrder (comparator()) 表达m.descendingMap().descendingMap()返回一个视图的m实质上等同于m

        结果
        这张地图的倒序视图
      • navigableKeySet

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

        NavigableSet<K> descendingKeySet​()
        返回此映射中包含的键的相反顺序NavigableSet 集合的迭代器按降序返回密钥。 该集合由地图支持,因此对地图的更改将反映在集合中,反之亦然。 如果在集合中的迭代正在进行中修改映射(除了通过迭代器自己的remove操作),迭代的结果是未定义的。 该组支持元件移除,即从映射中相应的映射,经由Iterator.removeSet.removeremoveAllretainAll ,和clear操作。 它不支持addaddAll操作。
        结果
        该地图中的键的反向导航设置视图
      • subMap

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

        返回的地图会抛出一个IllegalArgumentException ,试图在其范围之外插入一个键,或者构造一个其端点位于其范围之外的子地图。

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

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

        返回的地图将抛出一个IllegalArgumentException ,试图在其范围之外插入一个键。

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

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

        返回的地图将抛出一个IllegalArgumentException ,试图在其范围之外插入一个键。

        参数
        fromKey - 返回地图中的键的低端点
        inclusive - true如果 true低端点包括在返回的视图中
        结果
        该地图的部分的视图,其键大于(或等于,如果 inclusive为真) fromKey
        异常
        ClassCastException - 如果fromKey与此映射的比较器不兼容(或者如果映射没有比较器,如果fromKey不实现Comparable )。 如果fromKey无法与当前在地图中的键进行比较,则实施可能但不是必须抛出此异常。
        NullPointerException - 如果 fromKey为空,并且此映射不允许空键
        IllegalArgumentException - 如果该地图本身有限制范围,而 fromKey位于范围的范围之外
      • subMap

        SortedMap<K,V> subMap​(K fromKey,
                              K toKey)
        返回此地图部分的视图,其关键字范围从fromKey (含)到toKey ,独占。 (如果fromKeytoKey相等,则返回的地图为空。)返回的地图由该地图支持,所以返回的地图中的更改会反映在该地图中,反之亦然。 返回的地图支持该地图支持的所有可选地图操作。

        返回的地图将抛出一个IllegalArgumentException尝试在其范围之外插入一个键。

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

        Specified by:
        subMap在接口 SortedMap<K,V>
        参数
        fromKey - 返回地图中的键的低端点(含)
        toKey - 返回地图中的键的高端点(独占)
        结果
        该地图的部分视图,其关键字范围从 fromKey (含)到 toKey ,独占
        异常
        ClassCastException - 如果fromKeytoKey无法使用此映射的比较器彼此进行比较(或者,如果映射没有比较器,则使用自然排序)。 如果fromKeytoKey无法与当前在地图中的键进行比较,则实施可能但不是必须抛出此异常。
        NullPointerException - 如果 fromKeytoKey为空,并且此映射不允许空键
        IllegalArgumentException - 如果fromKey大于toKey ; 或者如果该地图本身具有有限的范围,并且fromKeytoKey位于范围的界限之外
      • headMap

        SortedMap<K,V> headMap​(K toKey)
        返回该地图部分的视图,其密钥严格小于toKey 返回的地图由此地图支持,因此返回的地图中的更改将反映在该地图中,反之亦然。 返回的地图支持该地图支持的所有可选地图操作。

        返回的地图会抛出一个IllegalArgumentException ,试图在其范围之外插入一个键。

        相当于headMap(toKey, false)

        Specified by:
        headMap在接口 SortedMap<K,V>
        参数
        toKey - 返回地图中的键的高端点(排他)
        结果
        该地图的部分密钥严格小于 toKey
        异常
        ClassCastException - 如果toKey与此映射的比较器不兼容(或者,如果映射没有比较器,如果toKey不实现Comparable )。 如果toKey无法与当前在地图中的键进行比较,则实施可能但不是必须抛出此异常。
        NullPointerException - 如果 toKey为空,并且此映射不允许空键
        IllegalArgumentException - 如果此地图本身有限制范围,而 toKey位于范围范围之外
      • tailMap

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

        返回的地图会抛出一个IllegalArgumentException ,试图在其范围之外插入一个键。

        相当于tailMap(fromKey, true)

        Specified by:
        tailMap在接口 SortedMap<K,V>
        参数
        fromKey - 返回地图中的键的低端点(含)
        结果
        该地图的部分的视图,其键大于或等于 fromKey
        异常
        ClassCastException - 如果fromKey与此映射的比较器不兼容(或者如果映射没有比较器,则fromKey不实现Comparable )。 如果fromKey无法与当前在地图中的键进行比较,则实施可能但不是必须抛出此异常。
        NullPointerException - 如果 fromKey为空,并且此映射不允许空键
        IllegalArgumentException - if this map itself has a restricted range, and fromKey lies outside the bounds of the range