public static interface Map.Entry<K,V>
映射项(键-值对)。Map.entrySet 方法返回映射的 collection 视图,其中的元素属于此类。获得映射项引用的唯一 方法是通过此 collection 视图的迭代器来实现。这些 Map.Entry 对象仅 在迭代期间有效;更确切地讲,如果在迭代器返回项之后修改了底层映射,则某些映射项的行为是不确定的,除了通过 setValue 在映射项上执行操作之外。
Map.entrySet()
方法摘要 | |
---|---|
boolean |
equals(Object o) 比较指定对象与此项的相等性。 |
K |
getKey() 返回与此项对应的键。 |
V |
getValue() 返回与此项对应的值。 |
int |
hashCode() 返回此映射项的哈希码值。 |
V |
setValue(V value) 用指定的值替换与此项对应的值(可选操作)。 |
方法详细信息 |
---|
K getKey()
IllegalStateException
- 如果已经从底层映射中移除了该项,则实现可能(但不要求)抛出此异常。
V getValue()
IllegalStateException
- 如果已经从底层映射中移除了该项,则实现可能,但不要求,抛出此异常。
V setValue(V value)
value
- 要存储在此项中的新值
UnsupportedOperationException
- 如果底层映射不支持
put 操作
ClassCastException
- 如果指定值的类不允许将该值存储在底层映射中
NullPointerException
- 如果底层映射不允许 null 值,并且指定的值为 null
IllegalArgumentException
- 如果此值的某些方面不允许将其存储在底层映射中
IllegalStateException
- 如果已经从底层映射中移除了该项,则实现可能,但不要求,抛出此异常
boolean equals(Object o)
(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 接口实现间可正确地工作。
o
- 要与此映射项进行相等性比较的对象
Object.hashCode()
,
Hashtable
int hashCode()
(e.getKey()==null ? 0 : e.getKey().hashCode()) ^ (e.getValue()==null ? 0 : e.getValue().hashCode())这确保 e1.equals(e2) 意味着对于任意两个项 e1 和 e2 而言, e1.hashCode()==e2.hashCode(),这正是 Object.hashCode 的常规协定所要求的。
Object.hashCode()
,
Object.equals(Object)
,
equals(Object)