gpt4 book ai didi

java - LinkedList> 并排输出元素?

转载 作者:行者123 更新时间:2023-12-02 12:55:19 25 4
gpt4 key购买 nike

我有一个问题。我无法并排输出我的 LinkedList。我问了这个问题,但遗憾的是我的老师告诉我不要更改方法头或使用 java 库(如日历)。我得到了很多关于使用它或更改方法头的建议。我是根据年级而定的,老师很严格。

一定有可能从左到右输出一个二维链表。我可以想象如果输出了通用 LinkedList 中的一个元素,那么请继续向右移动。

我正在努力实现这个想法。我希望你能帮助我。

这里我只是返回一个字符串,但为了测试我输出了添加的字符串。

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 中,我正在构建月份并返回一个由 this.planlist 添加的 LinkedList 。

 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

我希望不是太多,但这次我想把我的问题说清楚。此致马斯库林

最佳答案

我认为,在比月份更高的维度上迭代日子是可行的方法。这样,您可以遍历每一天并在进入每个月的第二天之前列出所有内容。

下面的内容尚未经过测试,但我希望这个概念已经得到例证。

    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")
}
}
}
}

关于java - LinkedList<LinkedList<String>> 并排输出元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44443607/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com