有没有办法在Java中更改Map的输出格式?

我只需要使用 System.out.println 以某种格式打印地图,而不使用“while”或“for”。

我必须打印一张看起来像的地图

a 1
b 2
c 3

使用 System.out.println(map);

但现在看起来像

{a=1, b=2, c=3}

我该怎么办?

回答

最简单的方法是像这样打印它。

map.forEach((k,v)->System.out.printf("%s %s", k,v));

另一种方法是在创建地图时覆盖 toString。

Map<String,Double> map = new HashMap<>() {
   public String toString() {
        StringBuilder sb = new StringBuilder();
        for(Entry<?,?> e : this.entrySet()) {
           sb.append(e.getKey() + " " + e.getValue());
        }
        return sb.toString();
   }
};

然后你可以做

System.out.println(map);

但我仍然会采用第一种方式。使用增强的 for 循环可以轻松打印地图时无需覆盖 toString。而且我真的不喜欢覆盖 API 方法,除非有很好的理由这样做。


以上是有没有办法在Java中更改Map的输出格式?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>