2010-11-23 30 views
1

こんにちは オブジェクトを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メソッドを持っており、二重リンクリストを書かれていますはるかに。

答えて

9

java.util.LinkedListは、二重リンクリストです。

二重リンクリストで期待されるように、すべての操作が実行されます。

あなたは、コンストラクタの引数として配列リストを渡すことで、それを作成することができます。

List linkedList = new LinkedList(arrayList); 

アップデート:java.util.LinkedListaddBeforeaddAfter方法をカバーする必要があり、indexOf(..)と組み合わせadd(index, element)を持っています。これらの便利なメソッドを追加するには、LinkedListを拡張することができます。リンクリストの末尾に要素を想定し

+0

ニース.... :)(愚かな15文字のブル) –

+0

私はaddAfterやaddBeforeのようなメソッドを持つ二重リンクリストを作成しました。しかし、私のオブジェクトをリストに追加すると、私のプログラムはうまく動作しません。 – user472221

+0

@ user472221更新された参照してください。 – Bozho

0

は0の「次の」プロパティを持っています

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

それは二重リンクリストの中に構築された表現であるとして、あなたはまた、java.util.LinkedListを使用することができます。このタイプを使用すると、リンクリストをArrayListのコンストラクタに渡すことができます。

関連する問題