首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >双向链表

双向链表
EN

Stack Overflow用户
提问于 2010-11-23 18:56:08
回答 2查看 3.4K关注 0票数 1

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

代码语言:javascript
复制
    public DNode(Object element, DNode prev, DNode next) {
    this.element = element;
    this.next = next;
    this.prev = prev;
}

也就是说,当我写这样的代码时,我的程序不能工作:

代码语言:javascript
复制
  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方法,还有更多。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-11-23 18:59:01

java.util.LinkedList是一个双向链表。

所有操作的执行与双向链表的预期一致。

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

代码语言:javascript
复制
List linkedList = new LinkedList(arrayList);

更新: java.util.LinkedListadd(index, element),与indexOf(..)结合起来应该涵盖addBeforeaddAfter方法。如果愿意,您可以扩展LinkedList以添加这些方便的方法。

票数 9
EN

Stack Overflow用户

发布于 2010-11-23 19:00:35

假设链表末尾的元素的'next‘属性为0:

代码语言:javascript
复制
ArrayList arrayList = new ArrayList();
int next = currentElement.next;
while(next != 0) {
    arrayList.add(currentElement);
    next = currentElement.next;
}

您还可以使用java.util.LinkedList,因为它是双向链表的内置表示形式。使用此类型意味着可以将链表传递到ArrayList的构造函数中

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4255291

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档