簡體   English   中英

什么是Map.Entry <K,V> 接口?

[英]What is Map.Entry<K,V> interface?

我遇到了以下代碼:

for(Map.Entry<Integer,VmAllocation> entry : allMap.entrySet()) {
       // ...
}

Map.Entry<K,V>是什么意思? 什么是entry對象?

我讀到方法entrySet返回地圖的設置視圖。 但我不理解for-each循環中的這種初始化。

Map.Entry是形成Map一個元素的鍵/值對。 有關更多詳細信息,請參閱文檔

您通常會將此用於:

Map<A, B> map = . . .;
for (Map.Entry<A, B> entry : map.entrySet()) {
    A key = entry.getKey();
    B value = entry.getValue();
}

如果需要處理每個鍵/值對,這比迭代鍵集並調用get(key)獲取每個值更有效。

轉到docs: Map.Entry

Map.Entry是一個表示地圖中一個條目的對象。 (標准映射每1個鍵有1個值。)因此,此代碼將對所有鍵值對進行迭代。

你可以打印出來:

for(Map.Entry<Integer,VmAllocation> entry : allMap.entrySet()) {
       System.out.print("Key: " + entry.getKey());
       System.out.println(" / Value: " + entry.getValue());
}

條目是鍵/值對。 在這種情況下,它是IntegersVmAllocation對象的映射。

正如javadoc所說

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

您可以了解Map.Entry文檔

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

檢查每個循環文檔

for(Map.Entry<Integer,VmAllocation> entry : allMap.entrySet()) 

entryMap.Entry類型的變量,它使用allMapEntry類型數據進行實例化,每次迭代。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM