如何转储哈希映射的内容?

2022-09-02 20:34:10

如何转储Java HashMap(或任何其他)的内容,例如到STDOUT?

例如,假设我有一个具有以下结构的复杂哈希映射:

( student1 => Map( name => Tim,         
                   Scores => Map( math => 10,
                                  physics => 20,
                                  Computers => 30),
                   place => Miami,
                   ranking => Array(2,8,1,13),
                  ),
 student2 => Map ( 
                   ...............
                   ...............
                 ),
............................
............................
);

因此,我想将其打印到屏幕上,以便了解数据结构。我正在寻找类似于PHP的var_dump()或Perl的dustorer()的东西。


答案 1

使用(此处的文档):HashMap.toString()

System.out.println("HASH MAP DUMP: " + myHashMap.toString());

通常,用于像这样转储数据。Object.toString()


答案 2

转储数据结构(例如,由嵌套映射、数组和集组成)的一个好方法是将其序列化为格式化的 JSON。例如使用Gson(com.google.gson):

Gson gson = new GsonBuilder().setPrettyPrinting().create();
System.out.println(gson.toJson(dataStructure));

这将以相当可读的方式打印出最复杂的数据结构。


推荐