2017-05-25 83 views
-2

我很喜欢我的LinkedList。输出是错误的。 我得到这个:`LinkedList给我错误的输出?

[January 2016, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31] 

我想是这样的:

January 2016 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31` 

那是我的宣言和可变我需要的initializatian;

private final String[] monthname = {null, "January", "February", "March", "April", "May", "June", "July", 
      "August", "September", "October", "November", "December"}; 

    private LinkedList<LinkedList<String>> planlist = new LinkedList<>(); 
    private int year = 2017; // Default year 

这是我的方法来建立一个月的论文。在这个方法中,我添加一个LinkedList值并将其作为类型返回给另一个LinkedList。

public LinkedList<String> buildMonth(int month) { 
    StringBuilder stringBuilder = new StringBuilder(); 
    LinkedList<String> monthList= new LinkedList<>(); 
    String header= this.monthname[month] + " " + this.year; 
    monatListe.add(header); 

    for (int i = 1; i <= 31; i++) { 
     String converterInt = String.valueOf(i); 
     monthList.add(converterInt.toString()); 

    } 
    return monthList; 
} 

最后,我想告诉你如何输出我的LinkedList。我用迭代器尝试它,但它不工作,所以我决定这样。

public String getYearplan(int from, int until) { 
     if (von <= bis) { 
      for (int i = von; i <= bis; i++) { 
       this.planlist.add(buildMonth(i)); 
       System.out.println(buildMonth(i)); 
      } 
     } 
return null; 
} 

我希望你能帮助我试图弄清楚,但没有任何工作。我尝试使用toString()而不使用toString,但我不知道。

问候

迈克尔开发

回答

0

所以你只是想用空格分隔值的字符串,然后做到这一点:

String.join(" ", planlist); 
0

也许,这里应该是...?

public String getYearplan(int from, int until) { 
    if (from <= until) { 
     for (int i = from; i <= until; i++) { 
      List list = buildMonth(i); 
      this.planlist.add(list); 
      System.out.println(list); 
     } 
    } 
    return null; 
} 
1

你做

System.out.println(buildMonth(i)); 

buildMonth()返回LinkedList<String>println需要一个字符串来打印,所以它调用LinkedListtoString()。您看到的输出是toString()生成的,LinkedList的程序员认为可能对试图使用LinkedList的其他程序员最有用。

由于您不喜欢LinkedList开发人员为您提供的内容,因此您只需将问题掌握在自己的手中,然后按照您希望的方式对输出进行编程。可能是这样的:

LinkedList<String> month = buildMonth(i); 
for (String s : month) { 
    System.out.println(s + " ");