很好地调试打印Java集合(toString不会返回漂亮的输出)
我希望打印Stack<Integer>
对象的效果与Eclipse调试器一样好(即[1,2,3...]
),但是使用out = "output:" + stack
打印它不会返回这个好结果
为了澄清,我说的是Java的内置集合,所以我不能覆盖它的toString()
我怎样才能得到一个好的可打印版本的堆栈
你可以在下面搜索框中键入要查询的问题!
我希望打印Stack<Integer>
对象的效果与Eclipse调试器一样好(即[1,2,3...]
),但是使用out = "output:" + stack
打印它不会返回这个好结果
为了澄清,我说的是Java的内置集合,所以我不能覆盖它的toString()
我怎样才能得到一个好的可打印版本的堆栈
# 1 楼答案
系统。出来println(集合c)已以可读格式打印任何类型的集合。只有当集合包含用户定义的对象时,才需要在用户定义的类中实现toString()来显示内容
# 2 楼答案
使用java 8流和收集器,可以轻松完成:
首先,我们使用
map
和Object::toString
来创建Collection<String>
,然后使用联接收集器以,
作为分隔符联接集合中的每个项# 3 楼答案
(爪哇8)
# 4 楼答案
apachecommons项目提供的MapUtils类提供了一个
MapUtils.debugPrint
方法,它可以很好地打印地图# 5 楼答案
番石榴看起来是个不错的选择:
^{}
# 6 楼答案
您可以将其转换为数组,然后用
Arrays.toString(Object[])
打印出来: