Java Util Linked List - 如何找到下一个?

And*_*yuk 18 java

使用Java LinkedList时,如何找出元素的下一个或上一个关系?

我的意思是,在常规链表中我会做这样的事情:

Node node1 = new Node();
Node node2 = new Node();
LinkedList list = new LinkedList();
list.add(node1);
list.add(node2);

//then my node1 will know who it's next is:
assertEquals(node2, node1.next());
Run Code Online (Sandbox Code Playgroud)

其中Node是我自己的数据/对象容器.

但是在Java的LinkedList中,数据似乎没有被修改.那么我如何才能真正找出"下一个"(或双链表中的"前一个")元素是谁?

maa*_*nus 16

你不能.LinkedList只是List的一个实现,不再提供.你需要自己做.

因为node1.next()您需要从node1列表中引用.实际上,你需要多次引用,因为node1可能有多次引用.而且,它可以包含在多个列表中.

也许你可以用ListIterator它.

  • 这是相当悲伤的,因为我希望有一个"链表"实现.哦,好吧,我要自己动手了. (3认同)

Jon*_*eet 6

我不知道Node你正在使用什么类,但LinkedList<T>有自己的内部节点类,你无法访问它.呼叫add会增加到列表中-你不能明确地插入一个节点持有的值,或访问节点本身以任何其他方式.是的,有时可能会很痛苦.

如果您需要一个带有节点公共封装的链表,您还需要找到不同的实现或自己创建.