您好,我想知道如何将对象从arrayList复制到双向链表中?另外,我的DNode构造函数是:
public DNode(Object element, DNode prev, DNode next) {
this.element = element;
this.next = next;
this.prev = prev;
}也就是说,当我写这样的代码时,我的程序不能工作:
DNode node = new DNode(pointList.get(0),null, null);
for (int i = 1; i < pointList.size(); i++) {
DNode dNode = new DNode(pointList.get(i), node, null);
dList.addLast(dNode);
}我还写了双向链表,它有addAfter和addBefore方法,还有更多。
发布于 2010-11-23 18:59:01
java.util.LinkedList是一个双向链表。
所有操作的执行与双向链表的预期一致。
您可以通过将数组列表作为构造函数参数传递来创建它:
List linkedList = new LinkedList(arrayList);更新: java.util.LinkedList有add(index, element),与indexOf(..)结合起来应该涵盖addBefore和addAfter方法。如果愿意,您可以扩展LinkedList以添加这些方便的方法。
发布于 2010-11-23 19:00:35
假设链表末尾的元素的'next‘属性为0:
ArrayList arrayList = new ArrayList();
int next = currentElement.next;
while(next != 0) {
arrayList.add(currentElement);
next = currentElement.next;
}您还可以使用java.util.LinkedList,因为它是双向链表的内置表示形式。使用此类型意味着可以将链表传递到ArrayList的构造函数中
https://stackoverflow.com/questions/4255291
复制相似问题