模块  java.base
软件包  java.util

Class TreeMap<K,​V>

  • 参数类型
    K - 此映射维护的键的类型
    V - 映射值的类型
    实现的所有接口
    SerializableCloneableMap<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)时间成本containsKeygetputremove操作。 算法是对Cormen,Leiserson和Rivest的算法导论中的算法的改编。

    请注意,如果此有序映射要正确实现Map接口,则树映射维护的排序(如任何已排序的映射,以及是否提供显式比较器)必须equals一致 (有关与equals一致的精确定义,请参阅ComparableComparator )这是因为Map接口是根据equals操作定义的,但是有序映射使用其compareTo (或compare )方法执行所有键比较,因此从排序映射的角度来看,通过此方法被视为相等的键是相等的。 即使排序与equals不一致,也可以很好地定义有序映射的行为。 它只是没有遵守Map接口的一般合同。

    请注意,此实现不同步。 如果多个线程同时访问映射,并且至少有一个线程在结构上修改了映射,则必须在外部进行同步。 (结构修改是添加或删除一个或多个映射的任何操作;仅仅更改与现有键关联的值不是结构修改。)这通常通过在自然封装映射的某个对象上进行同步来实现。 如果不存在此类对象,则应使用Collections.synchronizedSortedMap方法“包装”地图。 这最好在创建时完成,以防止意外地不同步访问地图:

      SortedMap m = Collections.synchronizedSortedMap(new TreeMap(...)); 

    由此类的所有“集合视图方法”返回的集合的iterator方法返回的迭代器是快速失败的 :如果在创建迭代器之后的任何时候对映射进行结构修改,除非通过迭代器自己的remove方法,迭代器将抛出一个ConcurrentModificationException 因此,在并发修改的情况下,迭代器快速而干净地失败,而不是在未来的未确定时间冒任意,非确定性行为的风险。

    请注意,迭代器的快速失败行为无法得到保证,因为一般来说,在存在不同步的并发修改时,不可能做出任何硬性保证。 失败快速迭代器会尽最大努力抛出ConcurrentModificationException 因此,编写依赖于此异常的程序以确保其正确性是错误的: 迭代器的快速失败行为应该仅用于检测错误。

    Map.Entry的方法返回的所有Map.Entry对及其视图表示生成时映射的快照。 他们支持Entry.setValue方法。 (但请注意,可以使用put更改关联映射中的映射。)

    此类是Java Collections Framework的成员。

    从以下版本开始:
    1.2
    另请参见:
    MapHashMapHashtableComparableComparatorCollectionSerialized Form
    • 构造方法详细信息

      • TreeMap

        public TreeMap()
        使用其键的自然顺序构造一个新的空树图。 插入到地图中的所有键都必须实现Comparable接口。 此外,所有这些键必须是可相互比较的k1.compareTo(k2)不得为ClassCastException中的任何键k1k2抛出ClassCastException 如果用户尝试将键放入违反此约束的映射中(例如,用户尝试将字符串键放入键为整数的映射中),则put(Object key, Object value)调用将抛出ClassCastException
      • TreeMap

        public TreeMap​(Comparator<? super K> comparator)
        构造一个新的空树图,根据给定的比较器排序。 插入到地图中的所有键必须由给定的比较器相互比较: comparator.compare(k1, k2)不得为ClassCastException中的任何键k1k2抛出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中的任何键k1k2抛出ClassCastException 此方法在n * log(n)时间内运行。
        参数
        m - m映射放置在此映射中的映射
        异常
        ClassCastException - 如果m中的键不是Comparable ,或者不能相互比较
        NullPointerException - 如果指定的映射为null
      • TreeMap

        public TreeMap​(SortedMap<K,​? extends V> m)
        构造一个包含相同映射的新树映射,并使用与指定有序映射相同的顺序。 此方法以线性时间运行。
        参数
        m - 已映射的映射,其映射将放置在此映射中,其比较器将用于对此映射进行排序
        异常
        NullPointerException - 如果指定的映射为null
    • 方法详细信息

      • size

        public int size()
        返回此映射中键 - 值映射的数量。
        Specified by:
        size在界面 Map<K,​V>
        重写:
        size在类 AbstractMap<K,​V>
        结果
        此映射中键 - 值映射的数量
      • containsKey

        public boolean containsKey​(Object key)
        如果此映射包含指定键的映射,则返回 true
        Specified by:
        containsKey在界面 Map<K,​V>
        重写:
        containsKey在类 AbstractMap<K,​V>
        参数
        key - 要测试其在此地图中的存在的密钥
        结果
        true如果此映射包含指定键的映射
        异常
        ClassCastException - 如果指定的密钥无法与地图中当前的密钥进行比较
        NullPointerException - 如果指定的键为null并且此映射使用自然顺序,或者其比较器不允许null键
      • containsValue

        public boolean containsValue​(Object value)
        如果此映射将一个或多个键映射到指定值,则返回true 更正式地,返回true当且仅当此映射包含的至少一个映射到一个值v使得(value==null ? v==null : value.equals(v)) 对于大多数实现,此操作可能需要在地图大小上线性时间。
        Specified by:
        containsValue在界面 Map<K,​V>
        重写:
        containsValue在类 AbstractMap<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 - 如果指定的键为null并且此映射使用自然顺序,或者其比较器不允许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>
        重写:
        putAllAbstractMap<K,​V>
        参数
        map - 要存储在此映射中的映射
        异常
        ClassCastException - 如果指定映射中的键或值的类阻止它存储在此映射中
        NullPointerException - 如果指定的映射为null或指定的映射包含空键,并且此映射不允许null键
      • put

        public V put​(K key,             V value)
        将指定的值与此映射中的指定键相关联。 如果映射先前包含键的映射,则替换旧值。
        Specified by:
        put在界面 Map<K,​V>
        重写:
        put在类 AbstractMap<K,​V>
        参数
        key - 与指定值关联的键
        value - 要与指定键关联的值
        结果
        先前的值相关联的key ,或null如果没有映射key (A null返回也可以表示以前与null关联的地图与key
        异常
        ClassCastException - 如果无法将指定的键与当前映射中的键进行比较
        NullPointerException - 如果指定的键为null并且此映射使用自然排序,或者其比较器不允许null键
      • remove

        public V remove​(Object key)
        如果存在,则从此TreeMap中删除此键的映射。
        Specified by:
        remove接口 Map<K,​V>
        重写:
        remove在类 AbstractMap<K,​V>
        参数
        key - 应删除映射的键
        结果
        key关联的先前值,如果null没有映射, key (A null返回也可以表示该映射以前关联nullkey )。
        异常
        ClassCastException - 如果指定的密钥无法与地图中当前的密钥进行比较
        NullPointerException - 如果指定的键为null并且此映射使用自然排序,或者其比较器不允许null键
      • clear

        public void clear()
        从此映射中删除所有映射。 此调用返回后,映射将为空。
        Specified by:
        clear接口 Map<K,​V>
        重写:
        clearAbstractMap<K,​V>
      • 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 - 如果指定的键为null并且此映射使用自然顺序,或者其比较器不允许null键
        从以下版本开始:
        1.6
      • lowerKey

        public K lowerKey​(K key)
        从界面复制的说明: NavigableMap
        返回严格小于给定键的最大键,如果没有这样键,则返回 null
        Specified by:
        lowerKey在界面 NavigableMap<K,​V>
        参数
        key - 关键
        结果
        如果没有这样的密钥,最大密钥小于 key ,或 null
        异常
        ClassCastException - 如果无法将指定的键与当前映射中的键进行比较
        NullPointerException - 如果指定的键为null并且此映射使用自然排序,或者其比较器不允许null键
        从以下版本开始:
        1.6
      • floorEntry

        public Map.Entry<K,​V> floorEntry​(K key)
        从界面复制的说明: NavigableMap
        返回与小于或等于给定键的最大键关联的键 - 值映射,如果没有此键,则 null
        Specified by:
        floorEntry在界面 NavigableMap<K,​V>
        参数
        key - 关键
        结果
        最大密钥小于或等于 key ,如果没有这样的密钥 null
        异常
        ClassCastException - 如果指定的密钥无法与地图中当前的密钥进行比较
        NullPointerException - 如果指定的键为null并且此映射使用自然顺序,或者其比较器不允许null键
        从以下版本开始:
        1.6
      • floorKey

        public K floorKey​(K key)
        从界面复制的说明: NavigableMap
        返回小于或等于给定键的最大键,如果没有这样的键,则 null
        Specified by:
        floorKey在界面 NavigableMap<K,​V>
        参数
        key - 关键
        结果
        key密钥小于或等于 key ,如果没有这样的密钥 null
        异常
        ClassCastException - 如果指定的密钥无法与地图中当前的密钥进行比较
        NullPointerException - 如果指定的键为null并且此映射使用自然排序,或者其比较器不允许空键
        从以下版本开始:
        1.6
      • ceilingEntry

        public Map.Entry<K,​V> ceilingEntry​(K key)
        从界面复制的说明: NavigableMap
        返回与大于或等于给定键的最小键关联的键 - 值映射,如果没有此键,则 null
        Specified by:
        ceilingEntry在界面 NavigableMap<K,​V>
        参数
        key - 关键
        结果
        最小密钥大于或等于 key ,如果没有这样的密钥 null
        异常
        ClassCastException - 如果指定的密钥无法与地图中当前的密钥进行比较
        NullPointerException - 如果指定的键为null并且此映射使用自然顺序,或者其比较器不允许空键
        从以下版本开始:
        1.6
      • ceilingKey

        public K ceilingKey​(K key)
        从界面复制的说明: NavigableMap
        返回大于或等于给定键的 null键,如果没有这样的键,则 null
        Specified by:
        ceilingKey在界面 NavigableMap<K,​V>
        参数
        key - 关键
        结果
        最小密钥大于或等于 key ,如果没有这样的密钥 null
        异常
        ClassCastException - 如果指定的密钥无法与地图中当前的密钥进行比较
        NullPointerException - 如果指定的键为null并且此映射使用自然排序,或者其比较器不允许null键
        从以下版本开始:
        1.6
      • higherEntry

        public Map.Entry<K,​V> higherEntry​(K key)
        从界面复制的说明: NavigableMap
        返回与严格大于给定键的最小键关联的键值映射,如果没有此键,则 null
        Specified by:
        higherEntry在界面 NavigableMap<K,​V>
        参数
        key - 关键
        结果
        最小密钥大于 key的条目,如果没有这样的密钥 null
        异常
        ClassCastException - 如果指定的键无法与地图中当前的键进行比较
        NullPointerException - 如果指定的键为null并且此映射使用自然顺序,或者其比较器不允许null键
        从以下版本开始:
        1.6
      • higherKey

        public K higherKey​(K key)
        从界面复制的说明: NavigableMap
        返回严格大于给定键的最小键,如果没有这样的键,则返回 null
        Specified by:
        higherKey在界面 NavigableMap<K,​V>
        参数
        key - 关键
        结果
        如果没有这样的密钥,则最小密钥大于 keynull
        异常
        ClassCastException - 如果指定的键无法与地图中当前的键进行比较
        NullPointerException - 如果指定的键为null并且此映射使用自然顺序,或者其比较器不允许null键
        从以下版本开始:
        1.6
      • keySet

        public Set<K> keySet()
        返回此映射中包含的键的Set视图。

        set的迭代器按升序返回键。 该组的分裂器为late-binding快速失败 ,另外报告Spliterator.SORTEDSpliterator.ORDERED ,其遭遇顺序为升序键。 该spliterator的比较(见Spliterator.getComparator() )为null如果树映射的比较(见SortedMap.comparator() )是null 否则,分裂器的比较器与树图的比较器相同或强加相同的总排序。

        该集由地图支持,因此对地图的更改将反映在集中,反之亦然。 如果在对集合进行迭代时修改了映射(除了通过迭代器自己的remove操作),迭代的结果是未定义的。 该组支持元件移除,即从映射中相应的映射,经由Iterator.removeSet.removeremoveAllretainAll ,和clear操作。 它不支持addaddAll操作。

        Specified by:
        keySet在界面 Map<K,​V>
        Specified by:
        keySet接口 SortedMap<K,​V>
        重写:
        keySet在类 AbstractMap<K,​V>
        结果
        此映射中包含的键的设置视图
      • navigableKeySet

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

        public NavigableSet<K> descendingKeySet()
        从界面复制的说明: NavigableMap
        返回此映射中包含的键的反向顺序NavigableSet视图。 set的迭代器按降序返回键。 该集由地图支持,因此对地图的更改将反映在集中,反之亦然。 如果在对集合进行迭代时修改了映射(除了通过迭代器自己的remove操作),迭代的结果是未定义的。 该组支持元件移除,即从映射中相应的映射,经由Iterator.removeSet.removeremoveAllretainAll ,和clear操作。 它不支持addaddAll操作。
        Specified by:
        descendingKeySet在界面 NavigableMap<K,​V>
        结果
        此映射中键的反向可导航设置视图
        从以下版本开始:
        1.6
      • values

        public Collection<V> values()
        返回此映射中包含的值的Collection视图。

        集合的迭代器以相应键的升序返回值。 该集合的分裂器是late-binding快速失败 ,另外报告Spliterator.ORDERED ,其遭遇顺序是相应键的升序。

        该集合由地图支持,因此对地图的更改将反映在集合中,反之亦然。 如果在对集合进行迭代时修改了映射(除了通过迭代器自己的remove操作),迭代的结果是未定义的。 该collection支持元素移除,即从映射中相应的映射,经由Iterator.removeCollection.removeremoveAllretainAllclear操作。 它不支持addaddAll操作。

        Specified by:
        values在界面 Map<K,​V>
        Specified by:
        values接口 SortedMap<K,​V>
        重写:
        values在类 AbstractMap<K,​V>
        结果
        此映射中包含的值的集合视图
      • entrySet

        public Set<Map.Entry<K,​V>> entrySet()
        返回此映射中包含的映射的Set视图。

        set的迭代器以升序键顺序返回条目。 该组的分裂器为late-binding快速失败 ,另外报告Spliterator.SORTEDSpliterator.ORDERED ,其遭遇顺序为升序键。

        该集由地图支持,因此对地图的更改将反映在集中,反之亦然。 如果在对集合进行迭代时修改了映射(除了通过迭代器自己的remove操作,或者通过迭代器返回的映射条目上的setValue操作),迭代的结果是未定义的。 该组支持元件移除,即从映射中相应的映射,经由Iterator.removeSet.removeremoveAllretainAllclear操作。 它不支持addaddAll操作。

        Specified by:
        entrySet在界面 Map<K,​V>
        Specified by:
        entrySet接口 SortedMap<K,​V>
        结果
        此映射中包含的映射的set视图,按升序键顺序排序
      • descendingMap

        public NavigableMap<K,​V> descendingMap()
        从界面复制的说明: NavigableMap
        返回此映射中包含的映射的逆序视图。 降序地图由此地图支持,因此对地图的更改将反映在降序地图中,反之亦然。 如果在对任一映射的集合视图进行迭代时修改了任一映射(除非通过迭代器自己的remove操作),则迭代的结果是未定义的。

        返回的地图的订购量等于Collections.reverseOrder (comparator()) 表达式m.descendingMap().descendingMap()返回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
        返回此映射部分的视图,其键的范围为fromKeytoKey 如果fromKeytoKey相等,则返回的映射为空,除非fromInclusivetoInclusive都为真。 返回的地图由此地图支持,因此返回的地图中的更改将反映在此地图中,反之亦然。 返回的地图支持此地图支持的所有可选地图操作。

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

        Specified by:
        subMap在界面 NavigableMap<K,​V>
        参数
        fromKey - 返回映射中键的低端点
        fromInclusive - true如果 true低端点包含在返回的视图中
        toKey - 返回映射中键的高端点
        toInclusive - true如果 true高端点包含在返回的视图中
        结果
        此地图部分的视图,其键范围为 fromKeytoKey
        异常
        ClassCastException - 如果fromKeytoKey无法使用此映射的比较器相互比较(或者,如果映射没有比较器,则使用自然顺序)。 如果无法将fromKeytoKey与当前映射中的键进行比较,则实现可能(但不是必须)抛出此异常。
        NullPointerException - 如果 fromKeytoKey为null且此映射使用自然顺序,或其比较器不允许null键
        IllegalArgumentException - 如果fromKey大于toKey ; 或者如果此地图本身具有受限范围,则fromKeytoKey位于范围的范围之外
        从以下版本开始:
        1.6
      • headMap

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

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

        Specified by:
        headMap在界面 NavigableMap<K,​V>
        参数
        toKey - 返回映射中键的高端点
        inclusive - true如果 true高端点包含在返回的视图中
        结果
        此地图部分的视图,其键小于(或等于,如果 inclusive为真) toKey
        异常
        ClassCastException - 如果toKey与此映射的比较器不兼容(或者,如果映射没有比较器,则toKey未实现Comparable )。 如果无法将toKey与当前映射中的键进行比较,则实现可能(但不是必须)抛出此异常。
        NullPointerException - 如果 toKey为null且此映射使用自然排序,或者其比较器不允许null键
        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如果 true低端点包含在返回的视图中
        结果
        此地图部分的视图,其键大于(或等于,如果 inclusive为真) fromKey
        异常
        ClassCastException - 如果fromKey与此映射的比较器不兼容(或者,如果映射没有比较器,则fromKey未实现Comparable )。 如果无法将fromKey与当前映射中的键进行比较,则实现可能(但不是必须)抛出此异常。
        NullPointerException - 如果 fromKey为null且此映射使用自然顺序,或其比较器不允许null键
        IllegalArgumentException - 如果此地图本身具有受限范围,并且 fromKey位于范围的范围之外
        从以下版本开始:
        1.6
      • subMap

        public SortedMap<K,​V> subMap​(K fromKey,                                   K toKey)
        从界面复制的说明: NavigableMap
        返回此映射部分的视图,其键的范围从fromKey (包括toKey )到toKey (独占)。 (如果fromKeytoKey相等,则返回的地图为空。)返回的地图由此地图支持,因此返回的地图中的更改将反映在此地图中,反之亦然。 返回的地图支持此地图支持的所有可选地图操作。

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

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

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