什么是Map.Entry <K,V>界面?

sap*_*Pro 7 java map

我遇到了以下代码:

for(Map.Entry<Integer,VmAllocation> entry : allMap.entrySet()) {
       // ...
}
Run Code Online (Sandbox Code Playgroud)

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

我读到该方法entrySet返回地图的设置视图.但我不理解for-each循环中的这个初始化.

Ted*_*opp 10

Map.Entry是形成一个元素的键/值对Map.有关更多详细信息,请参阅文档.

您通常会将此用于:

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

如果您需要处理每个键/值对,这比迭代键集并调用get(key)以获取每个值更有效.


Nic*_*ole 5

转到文档: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());
}
Run Code Online (Sandbox Code Playgroud)