Module  java.base
软件包  java.util

Class TreeMap<K,V>

  • 参数类型
    K - 由此地图维护的键的类型
    V - 映射值的类型
    All Implemented Interfaces:
    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一致 (见ComparableComparator ,以确定与等于一致的精确定义。)这是因为Map接口是根据equals操作定义的,但是排序的映射使用其compareTo (或compare )方法执行所有关键比较,因此两从排序图的角度来说,通过该方法认为相等的键是相等的。 排序地图的行为明确定义的,即使其排序与equals不一致; 它只是不符合Map接口的总体合同。

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

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

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

    请注意,迭代器的故障快速行为无法保证,因为一般来说,在不同步并发修改的情况下,无法做出任何硬性保证。 失败快速的迭代器ConcurrentModificationExceptionConcurrentModificationException 因此,编写依赖于此异常的程序的正确性将是错误的: 迭代器的故障快速行为应仅用于检测错误。

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

    这个类是Java Collections Framework的成员。

    从以下版本开始:
    1.2
    另请参见:
    MapHashMapHashtableComparableComparatorCollectionSerialized Form
    • 构造方法摘要

      构造方法  
      Constructor 描述
      TreeMap​()
      使用其键的自然排序构造一个新的空树状图。
      TreeMap​(Comparator<? super K> comparator)
      构造一个新的,空的树图,按照给定的比较器排序。
      TreeMap​(Map<? extends K,? extends V> m)
      构造一个新的树状图,其中包含与给定地图相同的映射,根据其键的 自然顺序进行排序
      TreeMap​(SortedMap<K,? extends V> m)
      构造一个包含相同映射并使用与指定排序映射相同顺序的新树映射。
    • 方法摘要

      所有方法  接口方法  具体的方法 
      Modifier and Type 方法 描述
      Map.Entry<K,V> ceilingEntry​(K key)
      返回与大于或等于给定键的最小键相关联的键值映射,如果没有此键,则 null
      K ceilingKey​(K key)
      返回大于或等于给定键的 null键,如果没有这样的键,则 null
      void clear​()
      从这张地图中删除所有的映射。
      Object clone​()
      返回此 TreeMap实例的浅拷贝。
      Comparator<? super K> comparator​()
      返回用于为了在这个映射中的键,或比较null如果此映射使用natural ordering它的键。
      boolean containsKey​(Object key)
      如果此映射包含指定键的映射,则返回 true
      boolean containsValue​(Object value)
      如果此映射将一个或多个键映射到指定的值,则返回 true
      NavigableSet<K> descendingKeySet​()
      返回此映射中包含的键的相反顺序NavigableSet
      NavigableMap<K,V> descendingMap​()
      返回此映射中包含的映射的反向排序视图。
      Set<Map.Entry<K,V>> entrySet​()
      返回此地图中包含的映射的Set视图。
      Map.Entry<K,V> firstEntry​()
      返回与该地图中的最小键相关联的键值映射,如果地图为空,则 null
      K firstKey​()
      返回此地图中当前的第一个(最低)键。
      Map.Entry<K,V> floorEntry​(K key)
      返回与小于或等于给定键的最大键相关联的键值映射,如果没有此键,则 null
      K floorKey​(K key)
      返回小于或等于给定键的最大键,如果没有此键,则 null
      void forEach​(BiConsumer<? super K,? super V> action)
      对此映射中的每个条目执行给定的操作,直到所有条目都被处理或操作引发异常。
      V get​(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
      K higherKey​(K key)
      返回严格大于给定键的最小键,如果没有这样的键,则返回 null
      Set<K> keySet​()
      返回此地图中包含的键的Set视图。
      Map.Entry<K,V> lastEntry​()
      返回与该地图中最大键相关联的键值映射,如果地图为空,则 null
      K lastKey​()
      返回当前在此地图中的最后(最高)键。
      Map.Entry<K,V> lowerEntry​(K key)
      返回与严格小于给定键的最大键相关联的键值映射,如果没有这样的键,则 null
      K lowerKey​(K key)
      返回严格小于给定键的最大键,如果没有这样的键,则返回 null
      NavigableSet<K> navigableKeySet​()
      返回此地图中包含的键的NavigableSet视图。
      Map.Entry<K,V> pollFirstEntry​()
      删除并返回与该地图中的最小键相关联的键值映射,如果地图为空,则 null
      Map.Entry<K,V> pollLastEntry​()
      删除并返回与该地图中最大键相关联的键值映射,如果地图为空,则 null
      V put​(K key, V value)
      将指定的值与此映射中的指定键相关联。
      void putAll​(Map<? extends K,? extends V> map)
      将指定地图的所有映射复制到此地图。
      V remove​(Object key)
      从此TreeMap中删除此键的映射(如果存在)。
      V replace​(K key, V value)
      只有当目标映射到某个值时,才能替换指定键的条目。
      boolean replace​(K key, V oldValue, V newValue)
      仅当当前映射到指定的值时,才能替换指定键的条目。
      void replaceAll​(BiFunction<? super K,? super V,? extends V> function)
      将每个条目的值替换为对该条目调用给定函数的结果,直到所有条目都被处理或该函数抛出异常。
      int size​()
      返回此地图中键值映射的数量。
      NavigableMap<K,V> subMap​(K fromKey, boolean fromInclusive, K toKey, boolean toInclusive)
      返回此地图部分的视图,其关键字范围从 fromKeytoKey
      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视图。
    • 构造方法详细信息

      • TreeMap

        public TreeMap​()
        使用其键的自然排序构造一个新的空树状图。 插入地图的所有键都必须实现Comparable界面。 此外,所有这些密钥必须是相互可比的k1.compareTo(k2)不得为ClassCastException中的任何密钥k1k2ClassCastException 如果用户试图将一个键放入违反该约束的地图(例如,用户尝试将一个字符串键放入一个键为整数的地图中),则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 此方法运行在n * log(n)时间。
        参数
        m - 其映射将放置在此映射中的映射
        异常
        ClassCastException - 如果m中的键不是Comparable ,或者不相互比较
        NullPointerException - 如果指定的地图为空
      • TreeMap

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

      • size

        public int size​()
        返回此地图中键值映射的数量。
        Specified by:
        size在接口 Map<K,V>
        重写:
        sizeAbstractMap<K,V>
        结果
        该地图中键值映射的数量
      • containsKey

        public boolean containsKey​(Object key)
        如果此映射包含指定键的映射,则返回 true
        Specified by:
        containsKey在接口 Map<K,V>
        重写:
        containsKeyAbstractMap<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>
        重写:
        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>
        重写:
        getAbstractMap<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>
        重写:
        putAllAbstractMap<K,V>
        参数
        map - 要存储在此地图中的映射
        异常
        ClassCastException - 如果指定地图中的键或值的类阻止它存储在此映射中
        NullPointerException - 如果指定的映射为空或指定的映射包含空键,并且此映射不允许空键
      • put

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

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

        public void clear​()
        从这张地图中删除所有的映射。 此呼叫返回后,地图将为空。
        Specified by:
        clear在接口 Map<K,V>
        重写:
        clearAbstractMap<K,V>
      • clone

        public Object clone​()
        返回此TreeMap实例的浅拷贝。 (键和值本身不被克隆。)
        重写:
        cloneAbstractMap<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.SORTEDSpliterator.ORDERED ,遇到的订单是升序的关键顺序。 该spliterator的比较(见Spliterator.getComparator() )是null如果树映射的比较(见comparator() )是null 否则,拼接器的比较器与树形图的比较器相同或者施加相同的总排序。

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

        Specified by:
        keySet在接口 Map<K,V>
        Specified by:
        keySet在接口 SortedMap<K,V>
        重写:
        keySetAbstractMap<K,V>
        结果
        该地图中包含的键的集合视图
      • navigableKeySet

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

        public NavigableSet<K> descendingKeySet​()
        说明从接口NavigableMap复制
        返回此映射中包含的键的相反顺序NavigableSet 集合的迭代器按降序返回密钥。 该集合由地图支持,因此对地图的更改将反映在集合中,反之亦然。 如果在集合中的迭代正在进行中修改映射(除了通过迭代器自己的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>
        重写:
        valuesAbstractMap<K,V>
        结果
        该地图中包含的值的集合视图
      • entrySet

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

        集合的迭代器按升序键顺序返回条目。 集合的分配器是late-binding失败快速 ,另外报告Spliterator.SORTEDSpliterator.ORDERED ,遇到订单是升序的关键顺序。

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

        Specified by:
        entrySet在接口 Map<K,V>
        Specified by:
        entrySet在接口 SortedMap<K,V>
        Specified by:
        entrySetAbstractMap<K,V>
        结果
        该地图中包含的映射的集合视图
      • 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复制
        返回此地图部分的视图,其关键字范围从fromKeytoKey 如果fromKeytoKey相等,则返回的地图为空,除非是fromInclusivetoInclusive都为真。 返回的地图由此地图支持,因此返回的地图中的更改将反映在该地图中,反之亦然。 返回的地图支持该地图支持的所有可选地图操作。

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

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

        public boolean replace​(K key,
                               V oldValue,
                               V newValue)
        说明从界面Map复制
        仅当当前映射到指定的值时,才能替换指定键的条目。
        Specified by:
        replace在接口 Map<K,V>
        参数
        key - 与指定值相关联的键
        oldValue - 预期与指定键相关联的值
        newValue - 与指定键相关联的值
        结果
        true如果该值被替换
      • replace

        public V replace​(K key,
                         V value)
        说明从接口Map复制
        只有当目标映射到某个值时,才能替换指定键的条目。
        Specified by:
        replace在接口 Map<K,V>
        参数
        key - 与指定值相关联的键
        value - 与指定键相关联的值
        结果
        与指定键相关联的上一个值,如果没有键的映射, null (A null返回也可以指示以前关联的映射关系为null ,如果实现支持空值)。
      • forEach

        public void forEach​(BiConsumer<? super K,? super V> action)
        说明从接口Map复制
        对此映射中的每个条目执行给定的操作,直到所有条目都被处理或操作引发异常。 除非实现类另有指定,否则按照进入设置迭代的顺序执行操作(如果指定了迭代顺序)。操作引发的异常被转发给调用者。
        Specified by:
        forEach在接口 Map<K,V>
        参数
        action - 要为每个条目执行的操作
      • replaceAll

        public void replaceAll​(BiFunction<? super K,? super V,? extends V> function)
        说明从接口Map复制
        将每个条目的值替换为对该条目调用给定函数的结果,直到所有条目都被处理或该函数抛出异常。 函数抛出的异常被转发给调用方。
        Specified by:
        replaceAll在接口 Map<K,V>
        参数
        function - 应用于每个条目的功能