En utilisant le Comparateur de commande liste de tableaux Java

J'ai commander des rendez-vous à la date et l'heure. J'ai une liste de tableaux de rendez-vous et ont essayé de créer un comparateur pour comparer les dates et heures. Je suis en train d'utiliser les Collections.méthode de tri, en lui transmettant la liste de tableaux de rendez-vous et le AppointmentComparator que j'ai créé. Lors de la compilation j'obtiens un "Pas de méthode appropriée pour le tri." Voici un lien vers le message d'erreur généré par le compilateur : http://prntscr.com/7y4qb

Comparateur:

public class AppointmentComparator implements Comparator<Appointment>
{
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;
}

Ligne avec erreur de syntaxe:

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

variable livre est une liste de tableaux de rendez-vous. ArrayList<Appointment>

AppointmentBook classe:

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

public class AppointmentBook
{
private ArrayList<Appointment> book;

public AppointmentBook()
{
    book = new ArrayList<Appointment>();
}

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;
}

Rendez-vous de la classe:

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;
}

}

Pouvez-vous publier la totalité du AppointmentComparator classe pour nous? Il peut y avoir un problème dans la définition de la classe elle-même, et nous ne pouvons que spéculer sans une erreur de compilateur/la définition de la classe elle-même.
Pouvez-vous poster aussi la façon dont vous avez défini le livre variable avant d'appeler les Collections.sort()?
Ok mis à jour pour inclure l'ensemble de la classe
Nous avons toujours besoin de voir la déclaration de book.
Eh bien, le livre est une variable d'instance créée au sein d'une classe. Il sera rempli de Rendez-vous des objets spécifiés par l'utilisateur.

OriginalL'auteur Legendish | 2012-04-10