垂直打印散列图

时间:2016-01-10 05:26:31

标签: java hashmap pretty-print

我在Java方面很陌生,现在觉得很茫然。

我正在制作一个使用Apachi POI从excel文档中获取数据的程序,并打印结果。

我创建了一个使用' for'循环遍历excel表,并将值存储在其中。

Map<String, Integer> dataMap = new HashMap<String, Integer>();

当循环运行完毕后,我运行以下代码来打印结果:

System.out.println(dataMap);

结果以这种格式打印出来:

{A=1, Q=15, R=35, D=98, X=60, Y=21, N=57}

有没有办法可以打印出我的hashmap,看起来整齐有序,就像列表一样?有点像这样:

A = 1
Q = 15
R = 35
D = 98
X = 60
Y = 21
N = 57

我无法找到解决此问题的方法。如果有人可以一步一步地告诉我如何以我想要的方式打印这些代码,那将是非常棒的。

3 个答案:

答案 0 :(得分:1)

for (String key : dataMap.keySet()) {
    System.out.println(key + " = " + dataMap.get(key));
}

答案 1 :(得分:0)

    Iterator it = dataMap.entrySet().iterator();
    while (it.hasNext()) {
        Map.Entry pair = (Map.Entry) it.next();
        System.out.println(pair.getKey() + " = " + pair.getValue());
    }

答案 2 :(得分:0)

    for (Entry<String, Integer> entry : dataMap.entrySet()) {
        System.out.println(entry.getKey() + " = " + entry.getValue());
    } 

如果您希望按插入顺序输出,请使用LinkedHashMap。

更新了TreeMap示例:

    Map<String, Integer> dataMap = new TreeMap<String, Integer>();
    dataMap.put("D", 4);
    dataMap.put("B", 2);
    dataMap.put("F", 6);
    dataMap.put("E", 5);
    dataMap.put("C", 3);
    dataMap.put("G", 7);
    dataMap.put("A", 1);


    for (Entry<String, Integer> entry : dataMap.entrySet()) {
        System.out.println(entry.getKey() + " = " +        entry.getValue());
    }