Я написал метод addAppointmentSaveButtonClicked, который создает такой объект:
Appointment newAppointment = new Appointment(appointmentId, chosenCustomerId, appointmentType, startDateTime, endDateTime, customerName);
Затем он добавляет этот объект в observableArrayList следующим образом:
MainScreenController.appointmentDisplayList.add(newAppointment);
Теперь, когда я хочу создать новое назначение или редактирование существующего, я хочу проверить, есть ли уже одно с таким же временем начала в массиве assignDisplayList.
StartDateTime - переменная LocalDateTime, которая выбирается из меню комбинированный список и всегда форматируется следующим образом: 2020-02-15 10:30:00
в 30-минутные интервалы и нет проблем с миллисекундами или чем-то подобным.
Что я сделал до сих пор:
Я создал следующий метод, который выполняет итерацию по назначению, как это:
public static boolean existingAppointment(LocalDateTime ldt) {
for (Appointment app : appointmentDisplayList) {
if (app.getStart() == ldt) {
System.out.println("True");
return true;
}
}
System.out.println("False");
return false;
}
Затем, когда нажимается кнопка сохранения, я помещаю код создания объекта в IF кодовый блок следующим образом:
if(!existingAppointment(startDateTime)) {
AppointmentMethods.addAppointment(appointmentType, chosenCustomerId, utcStartTime, utcEndTime);
appointmentId = AppointmentMethods.getAppointment(chosenCustomerId, utcStartTime).getAppointmentId();
Appointment newAppointment = new Appointment(appointmentId, chosenCustomerId, appointmentType, startDateTime, endDateTime, customerName);
MainScreenController.appointmentDisplayList.add(newAppointment);}
Теперь проблема, с которой я сталкиваюсь в своем коде, заключается в том, что каждый раз, когда я выбираю для своего нового назначенного момента дату и дату, это если блок всегда становится ложным, и дубликаты встреч добавляются в мой ArrayList.
I надеюсь, что любой опытный программист может помочь мне понять, что я делаю здесь неправильно? Заранее спасибо!