Java 8:如何更新链表中的数据,需要拉取上一个节点的数据来更新当前节点的数据

Java 8 : How to update data in a linked list, where I need to pull the data of previous node to update data of current node

我目前卡在 java 双向链表中。我需要根据先前的值更新当前节点的数据。如果我尝试这个,它将进入一个永无止境的循环:

 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() 函数没有从 while 循环中出来。每当我尝试访问以前的数据时,它的值就会重置为以前的值。

While loop end only if,我删除了对previous()的调用,但我需要数据来根据previous更新当前记录。请帮忙

每次执行 while 循环时,代码都会通过 ListIterator 向前移动然后再次向后移动。在调用 taskListIterator.previous() 后在 if 语句中调用 taskListIterator.next() 以将其后移。