我正在尝试创建用于从一个位置(节点)到另一个位置(节点)的节点的数组列表。 nick是该地点的名称,而Node的pi是路径中的前一个节点。将对象复制到arraylist而不是指向
ArrayList<Node> bestWay = new ArrayList<Node>();
while(chosen.nick != from){
bestWay.add(chosen);
chosen = chosen.pi;
}
的问题是,在所有元素百威变得相同。当我打印bestWay我刚刚得到PLACE1,PLACE1,PLACE1,PLACE1,而不是PLACE1,PLACE2,PLACE3,PLACE4。
是否有可能将元素复制到数组中,而不是将指针添加到之后在行上更改的所选元素。 非常感谢!
如果'nick'变量名是一个字符串,实际使用'等于它的最佳实践()'方法(对不起,我不得不指出这一点)。要存储副本,可以使用'clone()'方法(并且可能在Node上覆盖它以供您自己使用),或者您可以使用复制构造函数。 – Alejandro