使用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它.
我不知道Node你正在使用什么类,但LinkedList<T>有自己的内部节点类,你无法访问它.呼叫add会增加值到列表中-你不能明确地插入一个节点持有的值,或访问节点本身以任何其他方式.是的,有时可能会很痛苦.
如果您需要一个带有节点公共封装的链表,您还需要找到不同的实现或自己创建.