Module  java.base
软件包  java.util

Interface Map.Entry<K,V>

  • 所有已知实现类:
    AbstractMap.SimpleEntryAbstractMap.SimpleImmutableEntry
    Enclosing interface:
    Map < KV >


    public static interface Map.Entry<K,V>
    地图条目(键值对)。 Map.entrySet方法返回地图的集合视图,其元素属于此类。 获取对映射条目的引用的唯一方法是从该集合视图的迭代器。 这些Map.Entry对象在迭代期间有效; 更正式地,如果在迭代器返回条目之后修改了后备映射,则映射条目的行为是未定义的,除了通过映射条目上的setValue操作。
    从以下版本开始:
    1.2
    另请参见:
    Map.entrySet()
    • 方法详细信息

      • getKey

        K getKey​()
        返回与此条目相对应的键。
        结果
        与此条目相对应的键
        异常
        IllegalStateException - 如果条目已从后备映射中删除,则实现可能但不是必须抛出此异常。
      • getValue

        V getValue​()
        返回与此条目相对应的值。 如果映射已从背景映射中删除(通过迭代器的remove操作),则此调用的结果未定义。
        结果
        与此条目对应的值
        异常
        IllegalStateException - 如果条目已从后备映射中删除,则实现可能但不是必须抛出此异常。
      • setValue

        V setValue​(V value)
        用指定的值替换与该条目相对应的值(可选操作)。 (写入地图。)如果映射已经从映射中移除(通过迭代器的remove操作),则此调用的行为是未定义的。
        参数
        value - 要存储在此条目中的新值
        结果
        旧值对应的条目
        异常
        UnsupportedOperationException - 如果支持地图不支持 put操作
        ClassCastException - 如果指定值的类阻止它存储在后台映射中
        NullPointerException - 如果后台映射不允许空值,并且指定的值为空
        IllegalArgumentException - 如果此值的某些属性阻止其存储在后台映射中
        IllegalStateException - 如果条目已从后备映射中删除,则实现可能但不是必须抛出此异常。
      • equals

        boolean equals​(Object o)
        将指定的对象与此条目进行比较以获得相等性。 如果给定对象也是映射条目,则返回true ,并且两个条目表示相同的映射。 更正式地,两个条目e1e2表示相同的映射
          (e1.getKey()==null ?
              e2.getKey()==null : e1.getKey().equals(e2.getKey()))  &&
             (e1.getValue()==null ?
              e2.getValue()==null : e1.getValue().equals(e2.getValue())) 
        这可以确保equals方法在Map.Entry接口的不同实现中正常工作。
        重写:
        equalsObject
        参数
        o - 要与该地图条目相等的对象
        结果
        true如果指定的对象等于此映射条目
        另请参见:
        Object.hashCode()HashMap
      • hashCode

        int hashCode​()
        返回此映射条目的哈希码值。 地图条目e的哈希码被定义为:
          (e.getKey()==null   ? 0 : e.getKey().hashCode()) ^
             (e.getValue()==null ? 0 : e.getValue().hashCode()) 
        这确保e1.equals(e2)意味着e1.hashCode()==e2.hashCode()对于任何两个条目e1e2 ,根据e2的一般合同的Object.hashCode
        重写:
        hashCodeObject
        结果
        该地图条目的哈希码值
        另请参见:
        Object.hashCode()Object.equals(Object)equals(Object)
      • comparingByValue

        static <K,V extends Comparable<? super V>> Comparator<Map.Entry<K,V>> comparingByValue​()
        返回一个比较值,比较Map.Entry的自然顺序值。

        返回的比较器是可序列化的,并且当比较具有空值的条目时, 它将抛出NullPointerException

        参数类型
        K - 地图键的类型
        V - Comparable类型的地图值
        结果
        一个比较值比较Map.Entry的自然顺序。
        从以下版本开始:
        1.8
        另请参见:
        Comparable
      • comparingByKey

        static <K,V> Comparator<Map.Entry<K,V>> comparingByKey​(Comparator<? super K> cmp)
        返回一个比较器,比较Map.Entry按键使用给定的Comparator

        如果指定的比较器也可串行化,则返回的比较器是可序列化的。

        参数类型
        K - 地图键的类型
        V - 地图值的类型
        参数
        cmp - 键Comparator
        结果
        一个比较器比较Map.Entry的关键。
        从以下版本开始:
        1.8
      • comparingByValue

        static <K,V> Comparator<Map.Entry<K,V>> comparingByValue​(Comparator<? super V> cmp)
        返回一个比较器,使用给定的Comparator比较Map.Entry的值。

        如果指定的比较器也可串行化,则返回的比较器是可序列化的。

        参数类型
        K - 地图键的类型
        V - 地图值的类型
        参数
        cmp - 值Comparator
        结果
        一个比较器比较Map.Entry的值。
        从以下版本开始:
        1.8