Java 打印嵌套哈希映射的内容是在同一行上混合字符

Java 打印嵌套哈希映射的内容是在同一行上混合字符,java,hashmap,hashtable,println,Java,Hashmap,Hashtable,Println,我试图打印一个哈希表内容,该哈希表包含一个映射,该表声明如下: Map<String, Map<String,Integer>> mapSD = new HashMap<String, Map<String, Integer>>(); EDIT:为了防止不够清晰,我需要以“{A{BE=2,XD=5}}”的方式打印内容,toString方法在非嵌套映射或哈希表中执行此操作,它在普通表中工作,但正在用此嵌套表覆盖控制台输出 编辑2:打印应该打印类似

我试图打印一个哈希表内容,该哈希表包含一个映射,该表声明如下:

 Map<String, Map<String,Integer>> mapSD = new HashMap<String, Map<String, Integer>>();
EDIT:为了防止不够清晰,我需要以“{A{BE=2,XD=5}}”的方式打印内容,toString方法在非嵌套映射或哈希表中执行此操作,它在普通表中工作,但正在用此嵌套表覆盖控制台输出

编辑2:打印应该打印类似于{A{RT=5,CS=3}的内容,即一个表格表。它会打印它,然后在同一行上打印另一行,造成无法读取的字符混合。我使用的是EclipseMars.2IDE,可能与这个问题有关

你知道怎么解决这个问题吗?
提前感谢。

解决了,问题是控制台的缓冲区大小,这就是为什么它在同一行混合字符,缓冲区被覆盖。谢谢你的回答

我不能复制你的问题,你的地图上有什么?比如:{AB{SA=4,ZP=3},BA{GU=2,HY=4,HT=1}}“简单地说,集合中的不同元素,以及这些集合中的元素数,AB有4个SA元素,3个ZP元素。首先,地图不打印任何东西。其次,哈希表中的映射也不会打印任何内容。第三,无论是否在哈希表中,映射在打印时都不会覆盖行,因为它们首先不会打印任何内容。不清楚你在问什么,甚至在说什么。@EJP很清楚我想打印哈希表的内容。如果你不知道,那么“toString”方法返回一个字符串,就像我对尼古拉斯·菲洛托所说的那样。它在不需要的地图上工作得很好,但它不能与这个嵌套的地图一起工作,它在同一行上打印所有内容,混合了字符,我不知道如何正确打印内容,你应该仔细阅读。如果你复制并粘贴你的整个代码或至少是你问题中的打印部分,这会更好,更有意义。建议您编辑您的问题
 System.out.println("\n"+mapSD.toString());