鴻蒙OS Map.Entry

2022-06-28 14:57 更新

Map.Entry

public static interface Map.Entry<K,V>

映射條目(鍵值對)。 Map.entrySet 方法返回map的集合視圖,其元素屬于此類。 獲取對映射條目的引用的唯一方法是從此集合視圖的迭代器。 這些 Map.Entry 對象僅在迭代期間有效; 更正式地說,如果在迭代器返回條目之后修改了支持映射,則映射條目的行為是未定義的,除非通過對映射條目的 setValue 操作。

方法總結(jié)

修飾符和類型 方法 描述
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() 返回與該條目對應(yīng)的鍵。
V getValue() 返回與該條目對應(yīng)的值。
int hashCode() 返回此映射條目的哈希碼值。
V setValue(V value) 用指定的值替換與該條目對應(yīng)的值(可選操作)。

方法詳情

getKey

K getKey()

返回與該條目對應(yīng)的鍵。

返回:

此條目對應(yīng)的鍵

Throws:

Throw名稱 Throw描述
IllegalStateException 如果條目已從支持映射中刪除,則實現(xiàn)可以但不是必須拋出此異常。

getValue

V getValue()

返回與該條目對應(yīng)的值。 如果映射已從支持映射中刪除(通過迭代器的刪除操作),則此調(diào)用的結(jié)果是未定義的。

返回:

此條目對應(yīng)的值

Throws:

Throw名稱 Throw描述
IllegalStateException 如果條目已從支持映射中刪除,則實現(xiàn)可以但不是必須拋出此異常。

setValue

V setValue(V value)

用指定的值替換與該條目對應(yīng)的值(可選操作)。 (寫入映射。)如果映射已經(jīng)從映射中刪除(通過迭代器的刪除操作),則此調(diào)用的行為是未定義的。

參數(shù):

參數(shù)名稱 參數(shù)描述
value 要存儲在此條目中的新值

返回:

對應(yīng)條目的舊值

Throws:

Throw名稱 Throw描述
UnsupportedOperationException 如果支持映射不支持 put 操作
ClassCastException 如果指定值的類阻止它存儲在支持映射中
NullPointerException 如果后備映射不允許空值,并且指定的值為空
IllegalArgumentException 如果此值的某些屬性阻止它存儲在支持映射中
IllegalStateException 如果條目已從支持映射中刪除,則實現(xiàn)可以但不是必須拋出此異常。

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 接口的不同實現(xiàn)中正常工作。

覆蓋:

類 Object 中的等于

參數(shù):

參數(shù)名稱 參數(shù)描述
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。

類型參數(shù):

類型參數(shù)名稱 類型參數(shù)描述
K then 映射鍵的 Comparable 類型
V map值的類型

返回:

一個比較器,它按鍵的自然順序比較 Map.Entry。

comparingByValue

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

返回一個比較器,它按自然順序比較 Map.Entry 的值。

返回的比較器是可序列化的,并在將條目與空值進行比較時拋出 NullPointerException。

類型參數(shù):

類型參數(shù)名稱 類型參數(shù)描述
K 映射鍵的類型
V map值的 Comparable 類型

返回:

一個比較器,它按自然順序比較 Map.Entry 的值。

comparingByKey

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

返回一個比較器,它使用給定的比較器按鍵比較 Map.Entry。

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

類型參數(shù):

類型參數(shù)名稱 類型參數(shù)描述
K 映射鍵的類型
V map值的類型

參數(shù):

參數(shù)名稱 參數(shù)描述
cmp 值比較器

返回:

通過鍵比較 Map.Entry 的比較器。

comparingByValue

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

返回一個使用給定 Comparator 按值比較 Map.Entry 的比較器。

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

類型參數(shù):

類型參數(shù)名稱 類型參數(shù)描述
K 映射鍵的類型
V map值的類型

參數(shù):

參數(shù)名稱 參數(shù)描述
cmp 值比較器

返回:

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

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號