微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用Comparator命令ArrayList Java

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

比较:

public class AppointmentComparator implements Comparator

带语法错误的行:

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

变量book是约会的ArrayList.的ArrayList<预约>

预约书类:

import java.util.ArrayList;
import java.util.Collections;

public class AppointmentBook
{
private ArrayList.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;
}

}

最佳答案
错误消息中,您似乎忘记将比较器声明为实现接口:

public class AppointmentComparator implements Comparator

它需要具有实现部分,而不仅仅包含方法.

原文地址:https://www.jb51.cc/java/438063.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐