[英]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.