Intelij idea Hashmaps打印到控制台

时间:2017-03-05 09:30:44

标签: java intellij-idea hashmap console-application

我试图将数据从2个哈希映射打印到控制台,但我注意到那里只描绘了一个。这是一个代码示例:

public class HashMapsmathces {
    public static void main(String[] args) throws Exception {

    Map<String, Object> hm1 = new HashMap<>();

    hm1.put("id", 1);
    hm1.put("sku","qazwsx");
    hm1.put("price", 11);

    printMaps(hm1);

    Map<String, Object> hm2 = new HashMap<>();

    hm1.put("id", 2);
    hm1.put("sku","qazwsx");
    hm1.put("price", 13);

    printMaps(hm2);
}

public static void printMaps(Map<String, Object> map)
{

    for (Map.Entry<String, Object> pair : map.entrySet())
    {
        String key = pair.getKey();
        String value = pair.getValue().toString();
        System.out.println(key + " : " + value);
    }
    }
}

所以,当我按下&#34; Run&#34;只有hm1才会被推送到控制台。我不太清楚为什么。

这里也有截图 enter image description here

感谢。

2 个答案:

答案 0 :(得分:4)

多数民众赞成因为hm2是空的,你在声明hm2 map之后将值重新分配给hm1。

public class HashMapsmathces {
    public static void main(String[] args) throws Exception {

    Map<String, Object> hm1 = new HashMap<>();

    hm1.put("id", 1);
    hm1.put("sku","qazwsx");
    hm1.put("price", 11);

    printMaps(hm1);

    Map<String, Object> hm2 = new HashMap<>();

    hm2.put("id", 2);
    hm2.put("sku","qazwsx");
    hm2.put("price", 13);

    printMaps(hm2);
}

public static void printMaps(Map<String, Object> map)
{
    //напишите тут ваш код
    for (Map.Entry<String, Object> pair : map.entrySet())
    {
        String key = pair.getKey();
        String value = pair.getValue().toString();
        System.out.println(key + " : " + value);
    }
    }
}

答案 1 :(得分:1)

您确实打印了两张地图。但hm2为空。 (您只能添加到hm1。)