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

    可以按升序或降序键访问和遍历NavigableMap descendingMap()方法返回地图视图,其中所有关系和方向方法的感知都被反转。 升序操作和视图的性能可能比降序操作的速度快。 方法subMap(K, boolean, K, boolean)headMap(K, boolean) ,和tailMap(K, boolean)从等命名的不同SortedMap在接受描述的下限和上限是否是包含性的抗排斥附加参数的方法。 任何NavigableMap子图必须实现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 - 如果指定的键为null且此映射不允许空键
      • 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 - 如果指定的键为null且此映射不允许空键
      • higherKey

        K higherKey​(K key)
        返回严格大于给定键的最小键,如果没有这样的键,则返回 null
        参数
        key - 关键
        结果
        如果没有这样的密钥,则最小密钥大于 keynull
        异常
        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.descendingMap().descendingMap()的视图, m等效于m

        结果
        此地图的逆序视图
      • navigableKeySet

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

        NavigableSet<K> descendingKeySet()
        返回此映射中包含的键的反向顺序NavigableSet视图。 set的迭代器按降序返回键。 该集由地图支持,因此对地图的更改将反映在集中,反之亦然。 如果在对集合进行迭代时修改了映射(除非通过迭代器自己的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如果 true低端点包含在返回的视图中
        toKey - 返回映射中键的高端点
        toInclusive - true如果 true高端点包含在返回的视图中
        结果
        此地图部分的视图,其键范围为 fromKeytoKey
        异常
        ClassCastException - 如果fromKeytoKey无法使用此地图的比较器相互比较(或者,如果地图没有比较器,则使用自然顺序)。 如果无法将fromKeytoKey与当前映射中的键进行比较,则实现可能(但不是必须)抛出此异常。
        NullPointerException - 如果 fromKeytoKey为null且此映射不允许null键
        IllegalArgumentException - 如果fromKey大于toKey ; 或者如果此地图本身具有受限范围,并且fromKeytoKey位于范围的范围之外
      • headMap

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

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

        参数
        toKey - 返回映射中键的高端点
        inclusive - true如果 true高端点包含在返回的视图中
        结果
        此地图部分的视图,其键小于(或等于,如果 inclusive为真) toKey
        异常
        ClassCastException - 如果toKey与此映射的比较器不兼容(或者,如果映射没有比较器,则toKey未实现Comparable )。 如果无法将toKey与当前映射中的键进行比较,则实现可能(但不是必须)抛出此异常。
        NullPointerException - 如果 toKey为null且此映射不允许空键
        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为null且此映射不允许空键
        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为空且此映射不允许null键
        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为null且此映射不允许空键
        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为null且此映射不允许空键
        IllegalArgumentException - if this map itself has a restricted range, and fromKey lies outside the bounds of the range