-1

我想将 a 存储Data StructureArrayList. 我的数据结构如下:

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 ​​中的 总是相同的,我不知道我的错误在哪里。第一次我只ArrayListArrayLists. ArrayLists但这对我没有帮助。

4

1 回答 1

4

在您的代码中

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

我突出显示的部分不会创建新列表,它会返回对现有列表的引用。这就是为什么您的列表总是相同的原因(因为只有一个列表,并且有几个引用)。

听起来你正在寻找

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