双重链表

use*_*221 1 java collections

嗨,我想知道如何将我的对象从arrayList复制到双向链表?我的DNode构造函数也是:

    public DNode(Object element, DNode prev, DNode next) {
    this.element = element;
    this.next = next;
    this.prev = prev;
}
Run Code Online (Sandbox Code Playgroud)

即当我写这样的代码时,我的程序不起作用:

  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);
        }
Run Code Online (Sandbox Code Playgroud)

我也写了双链表,其中包含addAfter和addBefore方法以及更多内容.

Boz*_*zho 9

java.util.LinkedList 是一个双重链表.

对于双向链表,所有操作都可以预期.

您可以通过将数组列表作为构造函数参数传递来创建它:

List linkedList = new LinkedList(arrayList);
Run Code Online (Sandbox Code Playgroud)

更新:java.util.LinkedListadd(index, element)哪些,加上indexOf(..)应支付addBeforeaddAfter方法.LinkedList如果您愿意,可以扩展以添加这些方便的方法.

  • `LinkedList`的javadoc?:) (2认同)