gpt4 book ai didi

java - 在Java中递归转储聚合结构(Collection,Array)的内容

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:36:31 26 4
gpt4 key购买 nike

这是我关于 Stackoverflow 的第一个问题,如果您在我的第一篇文章中发现任何荒谬之处,请多多包涵。仅供引用,我已经阅读了 SO 常见问题解答,并且了解其各种政策。你看,我是一个大量使用 PHP、Perl、Python、ROR 等语言的人,最近我“上下文切换”到 Java EE。你看,我使用过的几种语言都有一个结构,使我能够在没有 for/foreach/for..in 循环的情况下递归地转储聚合结构的内容

例如,

a = Any composite Data structure 

PHP 有

var_dump() and print_r() 

Perl 有

Data::Dumper

ROR 有

PrettyPrint

Python 有

pprint module
.

所以我的问题是,

在 Java 世界中是否有任何这些的等价物?当我以前使用这些语言(PHP/Perl/Python/ROR)中的任何一种时,我发现转储复合数据结构的内容以检查它的外观然后进一步处理它(或决定如何处理)非常方便进一步处理)

感谢您的宝贵时间,如果我的帖子忽略了任何 SO 规则,我们深表歉意。

最佳答案

java.util 集合有 toString() 会递归地转出列表/集合/ map 等的细节。这需要存储在集合定义了有用的 toString()

然而,对于数组来说,它会失败,因为 Java 没有一个有用的默认数组 toString()。如果您知道您正在处理一个数组,那么您可以使用 Arrays.deepToString() 实用方法(有关详细信息,请参阅 guido's response)。

例如,这段代码:

final Map<String, Object> map = new HashMap<String, Object>();
final List<String> nested = Arrays.asList("foo", "bar", "baz");

map.put("given", "Arthur");
map.put("family", "Dent");
map.put("nested", nested);

System.out.println(map);

产生这个:

{nested=[foo, bar, baz], given=Arthur, family=Dent}

关于java - 在Java中递归转储聚合结构(Collection,Array)的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11027157/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com