我想在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
。
但这对我没有帮助。
答案 0 :(得分:4)
在您的代码中
nl.add(new Node(0,1, xy.getnodelist());
^^^^^^^^^^^^^^^^
我高亮的部分没有创建新列表,它返回对现有列表的引用。这就是为什么你的列表总是一样的(因为只有一个列表,只有一些列表引用它)。
听起来你正在寻找
nl.add(new Node(0,1, new ArrayList<Integer>(xy.getnodelist()));