public class Locations
{
public static int LocationInArr;
public static int LocInHeap;
public static Locations getNext=null;
public Locations(int a,int b)
{
this.LocationInArr=a;
this.LocInHeap=b;
}
public static int getLocationInArr()
{
return LocationInArr;
}
public static int getLocInHeap()
{
return LocInHeap;
}
public static Locations getNext()
{
return getNext;
}
}
在另一个文件中:
for(i=0;i<size;i+=2)
{
a=(Heap.length/k)*(i/2);
Locations L = new Locations(a,0);
add(L);
}
上面的 for 循环位于另一个类中,它用作 Location 类的列表。由于某种原因,当我尝试打印列表时,我创建的列表中的所有节点都包含相同的信息。
我认为上面代码中的一个或多个地方存在根本问题。有什么想法吗?
编辑:
静态私有(private)节点头= null;
static public void add(Locations a)
{
Node <Locations> pos = new Node <Locations> (a);
if(head == null)
{
head = pos;
pos.setNext(null);
}
else
{
pos.setNext(head);
head = pos;
}
最佳答案
您已将所有变量和方法标记为静态
。摆脱它。 static
意味着所有实例共享它们的变量,而不是获取它们自己的副本。
关于java - 节点在列表中复制自身,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30195518/