【问题标题】:print TreeMap<String, TreeSet<String>> in Java 8在 Java 8 中打印 TreeMap<String, TreeSet<String>>
【发布时间】:2021-11-08 02:16:12
【问题描述】:

我正在尝试打印

TreeMap&lt;String, TreeSet&lt;String&gt;&gt; abbreviations 在 Java 中

我试过了:

if (abbreviations.size() > 0)
        abbreviations.forEach((x, y) -> {                     
            System.out.println(String.format("%-7s   : %-100s ", x, y)); 
        });

这样打印:

US        : [ Unity Status,  Unresolved Sample]                                                                  
VC        : [ Value Color,  Value Contex,  Value Context,  Video Conference,  Visibility Created,  Visit Created,  Visits Completed] 

但我喜欢不带方括号的打印。

US        : Unity Status,  Unresolved Sample                                                                  
VC        : Value Color,  Value Contex,  Value Context,  Video Conference,  Visibility Created,  Visit Created,  Visits Completed

接下来我可以尝试什么?

【问题讨论】:

  • 请阅读:Why is “Can someone help me?” not an actual question? --- 遍历Set,手动打印每个条目。
  • Output ArrayList to String without [,] (brackets) appearing 的模糊重复。但是使用String.join() 的好答案远远落后于列表,而这是迄今为止唯一的答案。
  • 你可以写abbreviations.size() &gt; 0而不是! abbreviations.isEmpty(),但是这个预测试完全没有必要。此外,System.out.println(String.format("%-7s : %-100s ", …))System.out.printf("%-7s : %-100s%n", …)) 的详细版本。将它与接受的答案结合起来,您的整个代码应该是abbreviations.forEach((x, y) -&gt; System.out.printf("%-7s : %-100s%n", x, String.join(", ", y)));

标签: java collections java-8 java-stream


【解决方案1】:

有很多方法可以做到这一点,其中一种是像这样使用String.join

String.format("%-7s   : %-100s ", x, String.join(", ", y))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-15
    相关资源
    最近更新 更多