首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >用Java打印Map ?

用Java打印Map ?
EN

Stack Overflow用户
提问于 2018-02-23 02:20:19
回答 2查看 0关注 0票数 0

我在找一种漂亮的打印方法Map...

代码:

代码语言:txt
复制
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();

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

EN

回答 2

Stack Overflow用户

发布于 2018-02-23 11:12:06

或者把你的逻辑放到一个整洁的小班里。

代码语言:txt
复制
public class PrettyPrintingMap<K, V> {
    private Map<K, V> map;

    public PrettyPrintingMap(Map<K, V> map) {
        this.map = map;
    }

    public String toString() {
        StringBuilder sb = new StringBuilder();
        Iterator<Entry<K, V>> iter = map.entrySet().iterator();
        while (iter.hasNext()) {
            Entry<K, V> 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();

    }
}

用法:

代码语言:txt
复制
Map<String, String> myMap = new HashMap<String, String>();

System.out.println(new PrettyPrintingMap<String, String>(myMap));
票数 0
EN

Stack Overflow用户

发布于 2018-02-23 11:48:49

代码语言:txt
复制
Arrays.toString(map.entrySet().toArray())
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100003503

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档