Java 在LinkedList中向后移动的语法?

Java 在LinkedList中向后移动的语法?,java,doubly-linked-list,Java,Doubly Linked List,我知道LinkedList是以双链接方式实现的,因此每个节点都有一个下一个和一个上一个指针。但是,我找不到用于访问以前的节点的语法? 我查看了JavaAPI,有一种方法可以向后迭代linkedlist。 对我来说,这意味着有一种简单的方法可以访问以前的节点P: 我正试图设计一个实验来证明LinkedList不仅仅是一个单一的链表,但如果不在LinkedList中向后移动,我想不出如何做到这一点 如果可能的话,请向我解释如何向后移动,非常感谢 您可以调用该函数,它将返回一个迭代器,您可以使用该迭代

我知道LinkedList是以双链接方式实现的,因此每个节点都有一个下一个和一个上一个指针。但是,我找不到用于访问以前的节点的语法? 我查看了JavaAPI,有一种方法可以向后迭代linkedlist。 对我来说,这意味着有一种简单的方法可以访问以前的节点P:

我正试图设计一个实验来证明LinkedList不仅仅是一个单一的链表,但如果不在LinkedList中向后移动,我想不出如何做到这一点


如果可能的话,请向我解释如何向后移动,非常感谢

您可以调用该函数,它将返回一个迭代器,您可以使用该迭代器双向(下一个/上一个)

LinkedList
有一个
listIterator(int)
方法。因此,您可以使用:

// Start at the end...
ListIterator<Foo> iterator = list.listIterator(list.size());
while (iterator.hasPrevious()) {
    Foo foo = iterator.previous();
}
//从末尾开始。。。
ListIterator迭代器=list.ListIterator(list.size());
while(迭代器.hasPrevious()){
Foo-Foo=iterator.previous();
}

这并不能证明它是一个双链表——例如,在一个单链表中可以非常低效地实现——但这就是我向后迭代链表的方法。

我不理解你的问题。首先,您说您通过查看javadoc找到了向后移动的方法,然后您问如何向后移动。那么,你的问题到底是什么?我认为有可能因为递减迭代器而向后移动。但是我不知道如何在junit测试中使用相同的函数。例如,如果有一个1->2->3的列表,我想知道如何从2调用上一个节点。看看源代码(在Java目录中应该有一个
src.zip
LinkedList
节点组成,这些节点具有
prev
引用,
列表迭代器也使用它。非常感谢:)我如何证明它是一个双链接列表?如果能够向后移动还不足以prove@user1476390:通过查看javadoc或源代码。@JBNizet,我知道文档中说它是一个双链接列表,但我的任务是以某种方式验证该声明,我不知道如何做that@user1476390:您可以根据“列表大小”-对于双链接列表,该图应该是线性的。