Map.Entry
public static interface Map.Entry<K,V>
映射条目(键值对)。 Map.entrySet 方法返回map的集合视图,其元素属于此类。 获取对映射条目的引用的唯一方法是从此集合视图的迭代器。 这些 Map.Entry 对象仅在迭代期间有效; 更正式地说,如果在迭代器返回条目之后修改了支持映射,则映射条目的行为是未定义的,除非通过对映射条目的 setValue 操作。
方法总结
修饰符和类型 | 方法 | 描述 |
---|---|---|
static <K extends Comparable<? super K>,V>Comparator<Map.Entry<K,V>> | comparingByKey() | 返回一个比较器,它按键的自然顺序比较 Map.Entry。 |
static <K,V> Comparator<Map.Entry<K,V>> | comparingByKey(Comparator<? super K> cmp) | 返回一个比较器,它使用给定的比较器按键比较 Map.Entry。 |
static <K,V extends Comparable<? super V>>Comparator<Map.Entry<K,V>> | comparingByValue() | 返回一个比较器,它按自然顺序比较 Map.Entry 的值。 |
static <K,V> Comparator<Map.Entry<K,V>> | comparingByValue(Comparator<? super V> cmp) | 返回一个使用给定 Comparator 按值比较 Map.Entry 的比较器。 |
boolean | equals(Object o) | 比较指定对象与此条目是否相等。 |
K | getKey() | 返回与该条目对应的键。 |
V | getValue() | 返回与该条目对应的值。 |
int | hashCode() | 返回此映射条目的哈希码值。 |
V | setValue(V value) | 用指定的值替换与该条目对应的值(可选操作)。 |
方法详情
getKey
K getKey()
返回与该条目对应的键。
返回:
此条目对应的键
Throws:
Throw名称 | Throw描述 |
---|---|
IllegalStateException | 如果条目已从支持映射中删除,则实现可以但不是必须抛出此异常。 |
getValue
V getValue()
返回与该条目对应的值。 如果映射已从支持映射中删除(通过迭代器的删除操作),则此调用的结果是未定义的。
返回:
此条目对应的值
Throws:
Throw名称 | Throw描述 |
---|---|
IllegalStateException | 如果条目已从支持映射中删除,则实现可以但不是必须抛出此异常。 |
setValue
V setValue(V value)
用指定的值替换与该条目对应的值(可选操作)。 (写入映射。)如果映射已经从映射中删除(通过迭代器的删除操作),则此调用的行为是未定义的。
参数:
参数名称 | 参数描述 |
---|---|
value | 要存储在此条目中的新值 |
返回:
对应条目的旧值
Throws:
Throw名称 | Throw描述 |
---|---|
UnsupportedOperationException | 如果支持映射不支持 put 操作 |
ClassCastException | 如果指定值的类阻止它存储在支持映射中 |
NullPointerException | 如果后备映射不允许空值,并且指定的值为空 |
IllegalArgumentException | 如果此值的某些属性阻止它存储在支持映射中 |
IllegalStateException | 如果条目已从支持映射中删除,则实现可以但不是必须抛出此异常。 |
equals
boolean equals(Object o)
比较指定对象与此条目是否相等。 如果给定对象也是一个映射条目并且这两个条目表示相同的映射,则返回 true。 更正式地说,两个条目 e1 和 e2 表示相同的映射,如果
(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 中的等于
参数:
参数名称 | 参数描述 |
---|---|
o | 要与此映射条目比较是否相等的对象 |
返回:
如果指定的对象等于此映射条目,则为 true
hashCode
int hashCode()
返回此映射条目的哈希码值。 映射条目 e 的哈希码定义为:
(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
返回:
此映射条目的哈希码值
comparingByKey
static <K extends Comparable<? super K>,V> Comparator<Map.Entry<K,V>> comparingByKey()
返回一个比较器,它按键的自然顺序比较 Map.Entry。
返回的比较器是可序列化的,并在将条目与空键进行比较时抛出 NullPointerException。
类型参数:
类型参数名称 | 类型参数描述 |
---|---|
K | then 映射键的 Comparable 类型 |
V | map值的类型 |
返回:
一个比较器,它按键的自然顺序比较 Map.Entry。
comparingByValue
static <K,V extends Comparable<? super V>> Comparator<Map.Entry<K,V>> comparingByValue()
返回一个比较器,它按自然顺序比较 Map.Entry 的值。
返回的比较器是可序列化的,并在将条目与空值进行比较时抛出 NullPointerException。
类型参数:
类型参数名称 | 类型参数描述 |
---|---|
K | 映射键的类型 |
V | map值的 Comparable 类型 |
返回:
一个比较器,它按自然顺序比较 Map.Entry 的值。
comparingByKey
static <K,V> Comparator<Map.Entry<K,V>> comparingByKey(Comparator<? super K> cmp)
返回一个比较器,它使用给定的比较器按键比较 Map.Entry。
如果指定的比较器也是可序列化的,则返回的比较器是可序列化的。
类型参数:
类型参数名称 | 类型参数描述 |
---|---|
K | 映射键的类型 |
V | map值的类型 |
参数:
参数名称 | 参数描述 |
---|---|
cmp | 值比较器 |
返回:
通过键比较 Map.Entry 的比较器。
comparingByValue
static <K,V> Comparator<Map.Entry<K,V>> comparingByValue(Comparator<? super V> cmp)
返回一个使用给定 Comparator 按值比较 Map.Entry 的比较器。
如果指定的比较器也是可序列化的,则返回的比较器是可序列化的。
类型参数:
类型参数名称 | 类型参数描述 |
---|---|
K | 映射键的类型 |
V | map值的类型 |
参数:
参数名称 | 参数描述 |
---|---|
cmp | 值比较器 |
返回:
按值比较 Map.Entry 的比较器。