我希望Stack<Integer>像Eclipse调试器一样打印一个对象(即[1,2,3...]),但打印它out = "output:" + stack不会返回这个好结果.
为了澄清,我在谈论Java的内置集合,所以我无法覆盖它toString().
如何获得堆栈的可打印版本?
我正在寻找一种漂亮的印刷方式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();
Run Code Online (Sandbox Code Playgroud)
但我确信有更优雅和简洁的方法来做到这一点.
请在下标之前阅读评论!
我想转换的内容HashMap,以String作为转换ArrayList到String使用Arrays.toString(arrayList).
可能吗 ?有这么简单的方法吗?
我必须要迭代并使用它附加Iterator吗?例如:
HashMap<String, ArrayList<MyObject>> objectMap = new HashMap<String, ArrayList<>>();
//.... put many items to objectMap
Iterator it = objectMap.entrySet().iterator();
while(it.hasNext()){
Map.Entry pairs = (Map.Entry) it.next();
System.out.println(pairs.getKey() + " = " + pairs.getValue());
}
Run Code Online (Sandbox Code Playgroud)
我认为它是不同的,因为对<String, ArrayList>不<String, Integer>