在Java中迭代HashMap
这个问题在这里已经有了答案:
从你的代码中,我们可以看到你使用的是countyData.get("pop")
- 即你已经对key
进行了硬编码,所以它总是会返回一个同样的东西 - 与这个key
相关联的value
。
PS:您可以使用keySet
的键遍历映射的所有元素:
Set<KeyClass> keySet = myMap.keySet();
for(KeyClass key : keySet){
ValueClass value = myMap.get(key);
//do stuff
}
你也应该注意到putAll
方法会用相同的键覆盖条目:
将指定映射中的所有映射复制到此映射(可选操作)。 此调用的效果等同于在此映射上对指定映射中从关键字k到值v的每个映射调用一次put(k,v)的效果
for (Map.Entry<String, Integer> countyMarkers: map.entrySet())
{
System.out.println(countyMarkers.getKey() + " " + countyMarkers.getValue());
}
在这里我使用了entrySet()方法,它返回包含在此映射中的映射的Set视图,然后通过这些映射可以使用getKey()和getValue()方法获取键和值
问题是:
String pop = countyData.get("pop").toString();
你硬编码的关键获得“流行”
你可能想要:
String pop = countyData.get(county).toString();
链接地址: http://www.djcxy.com/p/23977.html