阅读(1156) (6)

鸿蒙OS Map.Entry

2022-06-15 17:55:47 更新

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 的比较器。