java.util

接口
异常
错误
所有已知实现类:
AbstractMap.SimpleEntry, AbstractMap.SimpleImmutableEntry
正在封闭接口:
Map< K, V>

public static interface Map.Entry<K,V>

映射项(键-值对)。Map.entrySet 方法返回映射的 collection 视图,其中的元素属于此类。获得映射项引用的唯一 方法是通过此 collection 视图的迭代器来实现。这些 Map.Entry 对象 在迭代期间有效;更确切地讲,如果在迭代器返回项之后修改了底层映射,则某些映射项的行为是不确定的,除了通过 setValue 在映射项上执行操作之外。

从以下版本开始:
1.2
另请参见:
Map.entrySet()

方法摘要
 boolean equals(Object o)
          比较指定对象与此项的相等性。
 K getKey()
          返回与此项对应的键。
 V getValue()
          返回与此项对应的值。
 int hashCode()
          返回此映射项的哈希码值。
 V setValue(V value)
          用指定的值替换与此项对应的值(可选操作)。
 

方法详细信息

getKey

K getKey()
返回与此项对应的键。

返回:
与此项对应的键
抛出:
IllegalStateException - 如果已经从底层映射中移除了该项,则实现可能(但不要求)抛出此异常。

getValue

V getValue()
返回与此项对应的值。如果已经从底层映射中移除了映射关系(通过迭代器的 remove 操作),则此调用的结果是不确定的。

返回:
与此项对应的值
抛出:
IllegalStateException - 如果已经从底层映射中移除了该项,则实现可能,但不要求,抛出此异常。

setValue

V setValue(V value)
用指定的值替换与此项对应的值(可选操作)。(写入该映射。)如果已经从映射中移除了映射关系(通过迭代器的 remove 操作),则此调用的行为是不确定的。

参数:
value - 要存储在此项中的新值
返回:
与此项对应的旧值
抛出:
UnsupportedOperationException - 如果底层映射不支持 put 操作
ClassCastException - 如果指定值的类不允许将该值存储在底层映射中
NullPointerException - 如果底层映射不允许 null 值,并且指定的值为 null
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 接口实现间可正确地工作。

覆盖:
Object 中的 equals
参数:
o - 要与此映射项进行相等性比较的对象
返回:
如果指定的对象等于此映射项,则返回 true
另请参见:
Object.hashCode(), Hashtable

hashCode

int hashCode()
返回此映射项的哈希码值。映射项 e 的哈希码定义如下:
     (e.getKey()==null   ? 0 : e.getKey().hashCode()) ^
     (e.getValue()==null ? 0 : e.getValue().hashCode())
 
这确保 e1.equals(e2) 意味着对于任意两个项 e1e2 而言, e1.hashCode()==e2.hashCode(),这正是 Object.hashCode 的常规协定所要求的。

覆盖:
Object 中的 hashCode
返回:
映射项的哈希码值
另请参见:
Object.hashCode(), Object.equals(Object), equals(Object)