如何使用java生成链表?

package 自习;
import java.util.*;
class Note
{
int x;
Note next;
Note(int a)
{
x=a;
next=null;
}
}
public class LinkList {
void put(Note J,int a)
{
J.next=new Note(a);
System.out.println("测试"+J.next.x);
J=J.next;

}
public static void main(String[] args) {
    Scanner input=new Scanner(System.in);
    int N,i=1,j;
     LinkList A=new LinkList();

    System.out.println("输入要建立的链表大小N:");
    N=input.nextInt();

    System.out.println("Please input the "+i+"th number.");
    j=input.nextInt();

    Note X=new Note(j);
    Note Y=X;

    for(i=2;i<=N;i++)
    {
        System.out.println("输入第"+i"个数:");
        j=input.nextInt();
        System.out.println("ceshi"+i);
        A.put(X,j);
    }


    for(i=1;i<=N;i++)
    {
        System.out.println(Y.x);
        Y=Y.next;

    }
}

}
用以上代码为什么生成的链表里最多只有两个元素?如果是每次调用A.put(X,j);的问题,那么怎样解决呢!在不用 for(i=2;i<=N;i++)
{
System.out.println("输入第"+i"个数:");
j=input.nextInt();
X.next=new Note(j);
X=X.next;

    }

替换的情况下。