节点在List中复制自身

时间:2015-05-12 15:37:05

标签: java list

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;
     }

1 个答案:

答案 0 :(得分:4)

您将所有变量和方法标记为static。摆脱它。 static表示所有实例共享其变量而不是获取自己的副本。