鸿蒙OS开发文档 鸿蒙OS Map.Entry

2024-02-25 开发教程 鸿蒙OS开发文档 匿名 1

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 的比较器。
booleanequals(Object o)比较指定对象与此条目是否相等。
KgetKey()返回与该条目对应的键。
VgetValue()返回与该条目对应的值。
inthashCode()返回此映射条目的哈希码值。
VsetValue(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。

类型参数:

类型参数名称类型参数描述
Kthen 映射键的 Comparable 类型
Vmap值的类型

返回:

一个比较器,它按键的自然顺序比较 Map.Entry。

comparingByValue

static <K,V extends Comparable<? super V>> Comparator<Map.Entry<K,V>> comparingByValue()

返回一个比较器,它按自然顺序比较 Map.Entry 的值。

返回的比较器是可序列化的,并在将条目与空值进行比较时抛出 NullPointerException。

类型参数:

类型参数名称类型参数描述
K映射键的类型
Vmap值的 Comparable 类型

返回:

一个比较器,它按自然顺序比较 Map.Entry 的值。

comparingByKey

static <K,V> Comparator<Map.Entry<K,V>> comparingByKey(Comparator<? super K> cmp)

返回一个比较器,它使用给定的比较器按键比较 Map.Entry。

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

类型参数:

类型参数名称类型参数描述
K映射键的类型
Vmap值的类型

参数:

参数名称参数描述
cmp值比较器

返回:

通过键比较 Map.Entry 的比较器。

comparingByValue

static <K,V> Comparator<Map.Entry<K,V>> comparingByValue(Comparator<? super V> cmp)

返回一个使用给定 Comparator 按值比较 Map.Entry 的比较器。

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

类型参数:

类型参数名称类型参数描述
K映射键的类型
Vmap值的类型

参数:

参数名称参数描述
cmp值比较器

返回:

按值比较 Map.Entry 的比较器。