java arraylist comparator,使用Comparator命令ArrayList Java

我必须按日期和时间订购约会.我有一个约会的ArrayList,并试图创建一个比较器来比较他们的日期和时间.我正在尝试使用Collections.sort方法,将其传递给Appointments的ArrayList和我创建的AppointmentComparator.在编译时,我得到了“没有合适的排序方法”.这是编译器生成的完整错误消息的链接:

http://prntscr.com/7y4qb

比较:

public class AppointmentComparator implements Comparator

{

public int compare(Appointment a, Appointment b)

{

if (a.getDay() < b.getDay())

return -1;

if (a.getDay() == b.getDay())

{

if (a.getStart() < b.getStart())

return -1;

if (a.getStart() > b.getStart())

return 1;

return 0;

}

return 1;

}

带语法错误的行:

Collections.sort(book, new AppointmentComparator());

变量book是约会的ArrayList.的ArrayList

预约书类:

import java.util.ArrayList;

import java.util.Collections;

public class AppointmentBook

{

private ArrayList book;

public AppointmentBook()

{

book = new ArrayList();

}

public void addAppointment(Appointment appt)

{

book.add(appt);

Collections.sort(book, new AppointmentComparator());

}

public String printAppointments(int day)

{

String list = "";

for (int i = 0; i < book.size(); i++)

{

if (book.get(i).getDay() == day)

{

list = list + "Appointment description: " + book.get(i).getDescription() + "\n" + "Date of Appointment: " +

book.get(i).getDay() + "\n" + "Time: " + book.get(i).getStart() + " - " + book.get(i).getEnd() + "\n" + "\n";

}

}

return list;

}

预约课程:

public class Appointment

{

private String desc;

private int day; //in format mmddyyyy

private int start; //in format hhmm

private int end; //in format hhmm

public Appointment(String description, int aptDay, int startTime, int endTime)

{

desc = description;

day = aptDay;

start = startTime;

end = endTime;

}

public String getDescription()

{

return desc;

}

public int getDay()

{

return day;

}

public int getStart()

{

return start;

}

public int getEnd()

{

return end;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值