繁体   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