У меня есть список объектов Job (каждый объект Job состоит из id (целое число), startTime (float) и finishTime (float)), и я пытаюсь удалить конфликтующие объекты Job.Так что я сравниваю конечные записи с начальными и удаляю конфликтующие конечные записи.
У меня есть мой код:
List < Job > sortedJobs = new ArrayList < Job > ();
int SJsize = sortedJobs.size();
for (int i = SJsize - 1; i > 0; i--) {
for (int j = 0; j < SJsize; j++) {
if ((sortedJobs.get(i).getStartTime() > sortedJobs.get(j).getStartTime() &&
sortedJobs.get(i).getStartTime() < sortedJobs.get(j).getFinishTime()) ||
(sortedJobs.get(i).getFinishTime() > sortedJobs.get(j).getStartTime() &&
sortedJobs.get(i).getFinishTime() < sortedJobs.get(j).getFinishTime())) {
sortedJobs.remove(i);
}
}
}
Это дает мне ошибку индекса за пределами границ, но если я пытаюсь добавить i-- каждый раз, когда он удаляет элемент, цикл не сравнивает каждый элемент.Как мне написать это правильно?Спасибо