排序ArrayList的元素的麻烦



我已经遇到了几天的麻烦,无法超越它。我有一个存储的阵列列表。

public class Application {
Time startTime = new Time(hour,minute);
Time endTime = new Time((startTime.getHour()), (startTime.getMinute() + duration));
Event e1 = new Event("Lecture", title, startTime, endTime);

我想根据我的终结时间对事件进行排序,我遇到的问题是,末日是基于开始时间的开始时间,该开始时间使用了我的Time课程中的小时和分钟。当我尝试使用compareTo时,我感到困惑。我将其放在我的Time课程中,但随后意识到它必须在我的Event类中进行比较。我将如何使用CompareTo比较终点,以及如何输出排序。当我将CompareTo放在活动中时,我得到了

The method sort(List<T>) in the type Collections is not applicable for the arguments (ArrayList<Event>)
            Collections.sort(events);
public Event(String type, String title, Time startTime, Time endTime) {
    this.type = type;
    this.title = title;
    this.startTime = startTime;
    this.endTime = endTime;
}
private int minute;
public Time(int hour, int minute) {
    this.minute = hour * 60 + minute;
}

也可以extend类,或者我必须实现它以使用compareTo

我将如何使用CompareTo比较终点,

Event类的compareTo方法将在您的Time类上调用compareTo方法,并将结果用作确定事件顺序的一部分。

以及如何输出排序。

一种方法是使用循环和printprintln调用。

当我将CompareTo放入我的活动中时:"The method sort(List<T>) in the type Collections is not applicable for the arguments (ArrayList<Event>)"

events的类型声明为List<Event>

顺便说一句,将compareTo放在事件中并没有引起这一点。那是另一个变化/另一个错误引起的。

我还可以扩展一个类,还是我必须实现它才能使用compareTo

任何需要可比的类都需要"实现"以其自己的类型为类型参数的Comparable接口;例如

public class Event implements Comparable<Event> {

然后需要提供compareTo方法的实现。

最新更新