В данный момент я застрял в java двусвязном списке. Мне нужно обновить данные текущего узла, основываясь на значении предыдущего. Если я попытаюсь сделать так, это приведет к бесконечному l oop:
ListIterator<SegmentDTO> taskListIterator = segmentDTOLinkedList.listIterator(dataPosition);
while (taskListIterator.hasNext())
{
SegmentDTO existingSegment = taskListIterator.next();
existingSegment.setSequenceId(existingSegment.getSequenceId() + 1);
if (taskListIterator.hasPrevious())
{
SegmentDTO previousSegment = taskListIterator.previous();
LocalDateTime projectedStartDttm = existingSegment.getProjectedStartDttm();
LocalDateTime projectedEndDttm = existingSegment.getProjectedEndDttm();
long originalDifference = Duration.between(projectedStartDttm, projectedEndDttm).toHours();
LocalDateTime projectedEndDateTimeAfterNewStop = previousSegment.getProjectedEndDttm()
.plusHours(originalDifference);
existingSegment.setProjectedStartDttm(previousSegment.getProjectedEndDttm());
existingSegment.setProjectedEndDttm(projectedEndDateTimeAfterNewStop);
}
}
моя функция hasNext () не выйдет, пока l oop. Это значение сбрасывается к предыдущему, когда я пытаюсь получить доступ к предыдущим данным.
Хотя l oop завершается только в том случае, если я удаляю вызов функции previous (), но мне нужны данные для обновления текущей записи на основе предыдущей. Пожалуйста, помогите.