在Java中迭代HashMap

这个问题在这里已经有了答案:

  • 如何有效地迭代'Map'中的每个条目? 38个答案

  • 从你的代码中,我们可以看到你使用的是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

    上一篇: Iterating through a HashMap in Java

    下一篇: Failure to Loop Through Map in JSP