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类的List。出于某种原因,当我尝试打印List时,我创建列表中的所有节点都包含相同的信息。
我认为我在上面的代码中的一个或多个地方有一个基本问题。有什么想法吗?
编辑:
static private Node head = 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;
}
答案 0 :(得分:4)
您将所有变量和方法标记为static
。摆脱它。 static
表示所有实例共享其变量而不是获取自己的副本。