簡體   English   中英

雙鏈表

[英]doubly-linked list

嗨,我想知道如何將我的對象從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方法,還有更多。

java.util.LinkedList是一個雙向鏈接列表。

所有操作均按雙向鏈表的預期執行。

您可以通過將數組列表作為構造函數參數傳遞來創建它:

List linkedList = new LinkedList(arrayList);

更新: java.util.LinkedList具有add(index, element) ,該add(index, element)indexOf(..)組合起來應該覆蓋addBeforeaddAfter方法。 如果願意,可以擴展LinkedList以添加這些方便的方法。

假設鏈表末尾的元素的“ next”屬性為0:

ArrayList arrayList = new ArrayList();
int next = currentElement.next;
while(next != 0) {
    arrayList.add(currentElement);
    next = currentElement.next;
}

您還可以使用java.util.LinkedList因為它是雙向鏈接列表的內置表示形式。 使用此類型意味着您可以將鏈接列表傳遞到ArrayList的構造函數中

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM