Java 在列表中复制自身的节点

Java 在列表中复制自身的节点,java,list,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 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;
    }
  }

用于(i=0;i所有变量和方法都标记为
static
。摆脱它。
static
意味着所有实例共享它们的变量,而不是它们自己的副本。

所有变量和方法都标记为
static
。摆脱它。
static
意味着所有实例共享它们的变量和方法变量,而不是它们自己的副本。

问题是什么?应该创建一个位置列表,但出于某种原因,列表中的所有位置都是相同的问题是什么?应该创建一个位置列表,但出于某种原因,列表中的所有位置都是相同的删除了我添加的所有静态引用我的对象主要是这样工作的。除了原来的问题“静态是做什么的?我应该什么时候使用它?”我不知道为什么我把所有的东西都改成了静态,现在它工作了!!!谢谢分配,但我很想知道为什么?!@user3657538如果答案解决了你的问题,请将它标记为答案,然后你可以问关于静态变量的新问题但是我很确定有很多关于“静态”的问题和答案关键字。尝试搜索静态变量或变量范围。删除了所有静态变量。我在main中添加了对我的对象的引用,使其工作。除了原始问题之外,静态变量做什么?我应该何时使用它?我不知道为什么我将所有内容都更改为静态变量,现在它工作了!!!谢谢分配,但我很想知道为什么?!@user3657538如果答案解决了您的问题,请将其标记为答案,然后您可以询问有关静态变量的新问题。但我非常确定有许多问题的答案与“static”关键字有关。请尝试搜索静态变量或变量范围。
for(i=0;i<size;i+=2)
{
    a=(Heap.length/k)*(i/2);
    Locations L = new Locations(a,0);
    add(L);
}
 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;
     }