двусвязный список - PullRequest
       0

двусвязный список

1 голос
/ 23 ноября 2010

Привет Я хочу знать, что, как я могу скопировать мои объекты из 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, а также многое другое.

Ответы [ 2 ]

9 голосов
/ 23 ноября 2010

java.util.LinkedList - список с двойной связью.

Все операции выполняются так, как можно ожидать для списка с двойной связью.

Вы можете создать его, передав список массива в качестве аргумента конструктора:

List linkedList = new LinkedList(arrayList);

Обновление: java.util.LinkedList имеет add(index, element), который в сочетании с indexOf(..) должен охватыватьметоды addBefore и addAfter.Вы можете расширить LinkedList, чтобы добавить эти удобные методы, если хотите.

0 голосов
/ 23 ноября 2010

Предполагая, что элемент в конце связанного списка имеет свойство 'next', равное 0:

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

Вы также можете использовать java.util.LinkedList, так как это встроенное представление дваждысвязанный список.Использование этого типа означает, что вы можете передать связанный список в конструктор ArrayList

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...