我有问题。我不能并排输出我的LinkedList。我问了这个问题,但遗憾的是我的老师告诉我不要改变方法头或使用像calender这样的java库。我有很多建议使用它或改变方法头。我取决于成绩,老师非常严格。
必须以某种方式从左到右输出2维链表。我可以想象一下,如果来自LinkedList的Generic中的元素被输出,那么请进一步向右移动。
我对这个想法的实施感到沮丧。我希望你能帮助我。
这里我只返回一个字符串但是为了测试我输出了要添加的字符串。
public String getYearplan(int from, int until) {
if (from <= until) {
for (int i = from; i <= until; i++) {
LinkedList<String> buildedMonth = buildMonth(i);
this.planlist.add(buildedMonth);
}
for (LinkedList<String> months: planlist) {
for (String s : months) {
System.out.printf("%24s",s);
}
}
}
` 在这个方法buildMonth中,我正在构建Month并返回一个LinkedList,由this.planlist添加。
public LinkedList<String> buildMonth(int month) {
LinkedList<String> monthList = new LinkedList<>();
StringBuilder sb = new StringBuilder();
String header = this.monthname[month] + " " + this.year;
sb.append(header);
int lengthOfMonth = calender.getLengthOfMonth(jahr, monat);
for (int day = 1; day <= lengthOfMonth; day++) {
for (int weekday = 0; weekday < 7; weekday++) {
String weDay = kalender.getDayOfWeek(weekday);
this.weekDayName = weDay;
}
this.daynumber++;
String dayOfMonth = this.kalender.getTwoLetter(day);
/*
modus = -1 is calender without holiday
*/
if (this.modus == -1) {
sb.append("\n"+this.weekDayName+"|"+dayOfMonth.toString()+"|\t\t|"+daynumber);
}
}
monthList.add(sb.toString());
return monthList;
}`
这是我的输出,我得到的一切都没有一些东西,但它很容易修复。主要的问题是我无法将它并排输出。奇怪的是,二月的标题向左移动而不是其他元素。
January 2017
Sa|01| |1
Sa|02| |2
Sa|03| |3
Sa|04| |4
Sa|05| |5
Sa|06| |6
Sa|07| |7
Sa|08| |8
Sa|09| |9
Sa|10| |10
Sa|11| |11
Sa|12| |12
Sa|13| |13
Sa|14| |14
Sa|15| |15
Sa|16| |16
Sa|17| |17
Sa|18| |18
Sa|19| |19
Sa|20| |20
Sa|21| |21
Sa|22| |22
Sa|23| |23
Sa|24| |24
Sa|25| |25
Sa|26| |26
Sa|27| |27
Sa|28| |28
Sa|29| |29
Sa|30| |30
Sa|31| |31February 2017
Sa|01| |32
Sa|02| |33
Sa|03| |34
Sa|04| |35
Sa|05| |36
Sa|06| |37
Sa|07| |38
Sa|08| |39
Sa|09| |40
Sa|10| |41
Sa|11| |42
Sa|12| |43
Sa|13| |44
Sa|14| |45
Sa|15| |46
Sa|16| |47
Sa|17| |48
Sa|18| |49
Sa|19| |50
Sa|20| |51
Sa|21| |52
Sa|22| |53
Sa|23| |54
Sa|24| |55
Sa|25| |56
Sa|26| |57
Sa|27| |58
Sa|28| |59`
这就是我试图实现的输出。
January 2017 February 2017
So|01| |1 Mi|01| |32
Mo|02| |2 Do|02| |33
Di|03| |3 Fr|03| |34
Mi|04| |4 Sa|04| |35
Do|05| |5 So|05| |36
Fr|06| |6 Mo|06| |37
我希望它不多,但我想这次明确提出我的问题。 最好的祝福 Maskulin
答案 0 :(得分:1)
在比我想象的那些月份更高维度的日子里进行迭代。这样,您可以在每个月的第二天进行迭代并列出所有内容。
以下内容尚未经过测试,但我希望这个概念能够得到体现。
public String getYearplan(int from, int until) {
if (from <= until) {
for (int i = from; i <= until; i++) {
LinkedList<String> buildedMonth = buildMonth(i);
this.planlist.add(buildedMonth);
}
for (int day = 0; day < 31; day++){
for (LinkedList<String> month: planlist) {
try{
System.out.print(month[day]);
} catch (Exception e) {
System.out.print("\t")
}
}
}
}