簡體   English   中英

打印出TreeMap <String, TreeSet<String> &gt;鍵和映射值

[英]Printing out a TreeMap<String, TreeSet<String>> Key and Mapped Values

I have a TreeMap <String, TreeSet <String>>

{Heat = [Bosh, Lebron, Wade], Nets =[DWill, KG], Sonics = null, Warriors = [Curry,Iggy,Thompson]}  

我想要打印出來。

   Heat Bosh Lebron Wade
   Nets DWill KG
   Sonics 
   Warriors Curry Iggy Thompson

我試過了

    for ( String w : listNBA){
        System.out.print( w + " ");           
        if (treemap.containsKey(w))
            System.out.println(treemap.get(w));
        else
            System.out.println( "" ); // print nothing if team doesn't exist

但這也不太正確,它的輸出是...

 Heat [Bosh, Lebron, Wade]
 Nets [DWill, KG]
 Sonics null
 Warriors [Curry,Iggy,Thompson]

所以,我的問題是:在我的print方法中有沒有簡單的方法將TreeSet轉換為String?

你可以這樣做:

StringBuilder stringBuilder = new StringBuilder();

for (Entry<String, TreeSet<String>> mapEntry : treemap.entrySet()) {
    stringBuilder.append(mapEntry.getKey());
    if (mapEntry.getValue() != null) {
        for (String setEntry : mapEntry.getValue()) {
            stringBuilder.append(" ").append(setEntry);
        }
    }
    stringBuilder.append("\n");
}

System.out.println(stringBuilder.toString());

Java 8有一個String.join方法,適用於此:

for ( String w : listNBA){
    System.out.print( w + " ");           
    if (treemap.containsKey(w) && treemap.get(w) != null)
        System.out.println(String.join(" ",treemap.get(w)));
    else
        System.out.println( "" ); // print nothing if team doesn't exist
}

請注意,你原來System.out.println(treemap.get(w))打印出nullget方法返回nullString.join將拋出一個NullPointerException ,如果它得到一個空參數。 因此,我在前面的if添加了一個空檢查。

join的第一個參數是一個字符串,它將插入每個輸入字符串之間。 它可以采用可變數量的String (或任何其他CharSequence )參數,也可以采用String數組(或其他CharSequence )。

您可以遍歷條目集並打印出密鑰和相應的值。

 for(Map.Entry<String, TreeSet <String>> entry : treemap.entrySet())
 {
     System.out.print( entry.getKey() + " "); 
     System.out.print( entry.getValue());
 }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM