在 Java 中漂亮地打印地图

2022-08-31 07:31:49

我正在寻找一种漂亮的方法来漂亮地打印一个.Map

map.toString()给我:{key1=value1, key2=value2, key3=value3}

我希望在我的地图条目值中有更多的自由度,并且正在寻找更像这样的东西:key1="value1", key2="value2", key3="value3"

我写了这一小段代码:

StringBuilder sb = new StringBuilder();
Iterator<Entry<String, String>> iter = map.entrySet().iterator();
while (iter.hasNext()) {
    Entry<String, String> entry = iter.next();
    sb.append(entry.getKey());
    sb.append('=').append('"');
    sb.append(entry.getValue());
    sb.append('"');
    if (iter.hasNext()) {
        sb.append(',').append(' ');
    }
}
return sb.toString();

但我相信有一种更优雅和简洁的方式来做到这一点。


答案 1
Arrays.toString(map.entrySet().toArray())

答案 2

看看番石榴图书馆:

Joiner.MapJoiner mapJoiner = Joiner.on(",").withKeyValueSeparator("=");
System.out.println(mapJoiner.join(map));