Я предполагаю, что ваш Appointment
класс выглядит примерно так:
class Appointment {
private int patientId;
private LocalDateTime appointmentDate;
// Getters & setters
}
Если это так, вы бы создали Comparator
для сортировки, используя Comparator.comparing
method:
ArrayList<Appointment> appointments = new ArrayList<>();
Collections.sort(appointments, Comparator.comparing(appointment -> {
return appointment.getAppointmentDate();
}));
Эта лямбда-функция сообщает компаратору, как взять ваш объект (Appointment
) и извлечь элемент, используемый для сортировки (ключ; appointmentDate
).Он может быть сокращен до ссылки на метод, если вам нравится:
Collections.sort(appointments, Comparator.comparing(Appointment::getAppointmentDate));
Вы также можете вызвать Collection#sort()
непосредственно на ArrayList
:
appointments.sort(Comparator.comparing(Appointment::getAppointmentDate));
Если вы всегда (или обычно) собираетесь сортировать свои Appointment
объекты по дате, вы могли бы подумать о том, чтобы Appointment
реализовать Comparable
, чтобы вы могли вызывать .sort()
безпрохождение Comparator
:
class Appointment implements Comparable<Appointment> {
private int patientId;
private LocalDateTime appointmentDate;
// Getters & setters
@Override
public int compareTo(final Appointment other) {
return appointmentDate.compareTo(other.appointmentDate);
}
}