[英]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());
}
條目是鍵/值對。 在這種情況下,它是Integers
到VmAllocation
對象的映射。
正如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())
entry
是Map.Entry
類型的變量,它使用allMap
的Entry
類型數據進行實例化,每次迭代。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.