-1

Data Structureに を格納したいArrayList。私のデータ構造は次のとおりです。

public class Node{
     private double weight;
     private int floor;
     private  List<Integer> nodelist= new  ArrayList<Integer>();
}

次の方法でこのデータ構造に保存したい: したがって、ノードリストを保存する場所の前に既に作成し、その後、次の行で行うように、ArrayListこのリストを に保存するだけにしたい:ArrayList

ArrayList<Node> nl = new ArrayList<Node>();
nl.add(new Node(0,1, xy.getnodelist());

問題は次のとおりです。これを行うArrayListと、ArrayListnl の は常に同じになり、エラーがどこにあるのかわかりません。最初は のみで試しましたArrayListが、後で List に切り替えました。Stackoverflow で、これを に格納するために使用する必要があることを読んだためArrayListsですArrayLists。しかし、これは私を助けません。

4

1 に答える 1

4

あなたのコードで

nl.add(new Node(0,1, xy.getnodelist());
                     ^^^^^^^^^^^^^^^^

ハイライトした部分は新しいリストを作成せず、既存のリストへの参照を返します。これが、リストが常に同じである理由です (リストが 1 つしかなく、それへの参照が少ないため)。

あなたが探しているように聞こえます

nl.add(new Node(0,1, new ArrayList<Integer>(xy.getnodelist()));
于 2013-07-30T14:01:29.663 に答える