我有一个事件类,其中包含有关事件的信息,例如名称,位置,门票价格等。我还有一个日历类,其唯一的实例变量是添加到其中的事件的ArrayList。
我的toString()方法如下
public String toString() {
String s = new String();
for (int i = 0; i < calendar.size(); i++) {
s = s + "\nEvent Name: " + calendar.get(i).getEventName() + " || Event Venue: "
+ calendar.get(i).getEventVenue() + " || Date: " + calendar.get(i).getDate() + " || Tickets Sold: "
+ calendar.get(i).getTicketsSold() + " || Ticket Price: " + calendar.get(i).getTicketPrice()
+ " || Overhead: " + calendar.get(i).getOverhead();
}
return s;
}
主要方法:
public class EventTester {
public static void main(String[] args) {
Event e1 = new Event("Birthday", "Hotel", "2020-04-12", 100, 100, 1000);
Event e2 = new Event("Easter", "Park", "2020-07-28", 200, 200, 2000);
Event e3 = new Event("Christmas", "Garage", "2020-03-28", 300, 300, 3000);
TRAPSCalendar tpc = new TRAPSCalendar();
tpc.add(e1);
tpc.add(e2);
tpc.add(e3);
System.out.println(tpc.toString());
System.out.println(tpc.sortByDate().toString());
}
}
当添加事件后在日历对象上简单地使用它时,它就按预期工作了>>
第一张照片的输出:
事件名称:生日||活动地点:酒店||日期:2020-04-12 ||已售出门票:100 ||票价:100 ||开销:1000活动名称:复活节||活动地点:公园||日期:2020-07-28 ||已售出门票:200 ||票价:200 ||开销:2000活动名称:圣诞节||活动场地:车库||日期:2020-03-28 ||售出的门票:300 ||票价:300 ||开销:3000
问题是,当我在ArrayList上使用我的一种排序方法,然后在已排序的返回ArrayList上使用toString()方法时。它不会放入新行,因此对于由于某种原因放在括号中的已排序事件,我最终会得到一长行输出。
第二张打印输出:
[[名称:圣诞节||地点:车库||日期:2020-03-28 ||售出的门票:300 ||票价:300 ||开销:3000,名称:生日地点:酒店||日期:2020-04-12 ||已售出门票:100 ||票价:100 ||开销:1000,名称:复活节||地点:公园||日期:2020-07-28 ||已售出门票:200 ||票价:200 ||开销:2000]
我将不得不创建一个GUI来显示事件列表,因此每个事件的重要性将在排序后显示在新行上。另外,列表的原始顺序需要与将要显示的排序版本分开维护。
我有一个事件类,其中包含有关事件的信息,例如名称,位置,门票价格等。我还有一个日历类,其日历类的唯一实例变量是要添加事件的ArrayList ...
sortByDate
方法不会返回TRAPSCalendar
类型(因此是this
引用),而是返回排序后的Collection
。因此,第二个toString
不会在日历上调用,而是在已排序的集合本身上调用。这就是为什么得到此结果(带有方括号)的原因。