当前位置: 首页 > 知识库问答 >
问题:

在返回的排序ArrayList上使用重写的toString方法不会考虑换行符

封昊天
2023-03-14
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());
    }

}

当我在添加事件后简单地在calendar对象上使用它时,它就像预期的那样工作:

首次打印输出:

活动名称:生日活动地点:酒店日期:2020-04-12售票:100票价:100头顶费:1000活动名称:复活节活动地点:公园日期:2020-07-28售票:200票价:200头顶费:2000
活动名称:圣诞节活动地点:车库日期:2020-03-28售票:300票价:300头顶费:3000

[名称:圣诞节地点:车库日期:2020-03-28售票:300票价:300间接费:3000名称:生日地点:酒店日期:2020-04-12售票:100间接费:100间接费:1000名称:复活节地点:公园日期:2020-07-28售票:200间接费:200间接费:2000]

我将不得不创建一个GUI来显示事件列表,所以它的重要性,每一个将显示在排序后的新行。此外,列表的原始顺序需要与能够显示的排序版本分开维护。

共有1个答案

邓赤岩
2023-03-14

我假设sortbydate方法不返回trapscalendar类型(因此this引用),而是返回排序的集合。因此,第二个tostring不是在日历上调用,而是在排序的集合本身上调用。这就是为什么你得到了这个结果(带括号)。

解决方案:

 System.out.println(tpc.toString());
 tpc.sortByDate();
 System.out.println(tpc.toString());

或者修改sortbydate,方法是返回当前日历对象(return this)而不是已排序的集合。

 类似资料:
  • *已解决:未清除ArrayList ebwteen调用,因此列表不断增加。我加了烫发。在nextPermutation()中的第二个for循环之前清除(),问题解决了!感谢所有帮助过我的人。 在toString方法中返回ArrayList时遇到问题。我的任务是从数字1-10中生成10个排列列表。驱动程序中调用了10次方法nextPermutation。 我希望我的输出如下所示: 等等.. 相反,每

  • 问题内容: 基本上,这就是我要实现的目标。 classname @ address(?)[原始],对象的名称,对象的年龄 问题,被递归调用。 我不能打电话,因为那不是我想要的。我想叫原件。 这个 由于明显的原因而无法正常工作。 我已经精疲力竭了,一旦方法被重写,可以做到这一点吗?即所谓的原始实现? (我的编辑)基本上,我需要的是:覆盖toString以显示’this’对象的两个属性,并且我也想让’

  • 问题内容: 我有一类这样的方法: 我如何在另一个类中调用此方法? 问题答案: 1. 如果要从中调用该方法的类位于同一包中,则创建该类的实例并调用该方法。 2. 使用 3. 最好有个赞等等。 例如:

  • 重写的方法可以有不同的返回类型吗?

  • 本文向大家介绍Java ArrayList的不同排序方法,包括了Java ArrayList的不同排序方法的使用技巧和注意事项,需要的朋友参考一下 由于其功能性和灵活性,ArrayList是 Java 集合框架中使用最为普遍的集合类之一。ArrayList 是一种 List 实现,它的内部用一个动态数组来存储元素,因此 ArrayList 能够在添加和移除元素的时候进行动态的扩展和缩减。你可能已经