Java ArrayList的数据结构
我想在Java ArrayList的数据结构,java,android,list,arraylist,Java,Android,List,Arraylist,我想在数组列表中存储数据结构。 我的数据结构如下: public class Node{ private double weight; private int floor; private List<Integer> nodelist= new ArrayList<Integer>(); } 现在的问题是:如果我这样做,我的ArrayListnl中的ArrayList总是相同的,我不知道我的错误在哪里。 第一次我只是用ArrayList
数组列表中存储数据结构
。
我的数据结构如下:
public class Node{
private double weight;
private int floor;
private List<Integer> nodelist= new ArrayList<Integer>();
}
现在的问题是:如果我这样做,我的ArrayList
nl中的ArrayList
总是相同的,我不知道我的错误在哪里。
第一次我只是用ArrayList
尝试了它,但后来我切换到了List,因为我在Stackoverflow上看到,这应该用于在ArrayLists
中存储ArrayLists
。
但这对我没有帮助 在您的代码中
nl.add(new Node(0,1, xy.getnodelist());
^^^^^^^^^^^^^^^^
部分I高亮显示不创建新列表,它返回对现有列表的引用。这就是为什么您的列表总是相同的(因为只有一个列表,只有几个引用)
听起来你在找我
nl.add(new Node(0,1, new ArrayList<Integer>(xy.getnodelist()));
nl.add(新节点(0,1,新数组列表(xy.getnodelist()));
变量xy是在哪里定义的?你能更清楚一些吗?你能发布你用来填充节点列表的构造函数吗?函数getnodelist()正在返回ArrayList。因此,我认为变量xy的定义方式无关紧要。从getnodelist返回的列表始终正确,但如果我使用调试器,则会覆盖ArrayList中所有其他存储的列表。
nl.add(new Node(0,1, new ArrayList<Integer>(xy.getnodelist()));