Java,从映射迭代器获取对象,然后调用方法?
我有一张地图,里面有一些物体,比如说苹果。我目前有一个迭代器,但我似乎只能调用getKey和getValue。getValue似乎返回实际Apple对象的内存地址,但我希望能够执行Apple a=Map。进入getValue()
我似乎只能得到密钥和内存地址:s
Iterator it = ApplesMap.entrySet().iterator();
while (it.hasNext()) {
Map.Entry entries = (Map.Entry)it.next();
System.out.println(entries.getKey() + " = " + entries.getValue());
//Apple a = entries.getValue();
}
# 1 楼答案
使用泛型:
如果你需要钥匙:
如果你不需要钥匙:
因为您在其中一条评论中有一个子问题:在引擎盖下,for each循环使用
Iterator
。每个Iterable
类都有资格使用for-each循环。但是,您不必为操作迭代器而烦恼——它是为您自动操作的。如果你想调用Iterator
,那么remove()
仍然很有用# 2 楼答案
试着设定价值
# 3 楼答案
这是古老的密码。使用泛型和for each循环
顺便说一句:
map.keySet()
map.values()
map.entrySet()
完全映射# 4 楼答案
如果您使用的是JDK 6,可以这样尝试: