ArrayList的数据结构

时间:2013-07-30 13:55:48

标签: java android list arraylist

我想在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 nl中的ArrayList始终是相同的,我不知道我的错误在哪里。 我第一次尝试使用ArrayList,但后来我切换到List,因为我在Stackoverflow上读到这应该用于在ArrayLists中存储ArrayLists。 但这对我没有帮助。

1 个答案:

答案 0 :(得分:4)

在您的代码中

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

我高亮的部分没有创建新列表,它返回对现有列表的引用。这就是为什么你的列表总是一样的(因为只有一个列表,只有一些列表引用它)。

听起来你正在寻找

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