java中作为linkedlist的数组元素

java中作为linkedlist的数组元素,java,arrays,linked-list,Java,Arrays,Linked List,我有一个家庭作业,我使用了一个数组,数组的元素是链表,因为行中的元素不是固定的,需要删除或添加一段时间,这取决于问题的情况,我尝试了下面的代码,但我在向固定行添加新元素时遇到了一个问题,例如p[0]将为所有行添加值,我怎样才能解决这个问题请帮忙 public class schedule { public class link { public LinkedList <Integer>list = new LinkedList<Integer>()

我有一个家庭作业,我使用了一个数组,数组的元素是链表,因为行中的元素不是固定的,需要删除或添加一段时间,这取决于问题的情况,我尝试了下面的代码,但我在向固定行添加新元素时遇到了一个问题,例如p[0]将为所有行添加值,我怎样才能解决这个问题请帮忙

public class schedule
{
   public class link
   {
     public LinkedList <Integer>list = new LinkedList<Integer>() ;
     public link(LinkedList<Integer> value)
    {
        list = value;
    }
    public link(int value)
    {
        list.add(Integer.valueOf(value)) ;
    }

}


private link p[] = new link[10];
public schedule()
{
    LinkedList<Integer> l = new LinkedList<Integer>();
    l.add(Integer.valueOf(2));
    l.add(Integer.valueOf(0));
    l.add(Integer.valueOf(3));
    for(int j=0;j<p.length;j++)
        p[j] = new link(l);



    p[0].list.add(9); // here I  have problem

    for(int j=0;j<p.length;j++)
    {
        System.out.print("p["+j+"]:");
        for(int i=0;i<p[j].list.size();i++)
            System.out.print(p[j].list.get(i).intValue());
        System.out.println();
    }

}
public static void main(String []arg)
{
    new schedule();
}


the output is like this : the value 9 added to all but I want to be added just for first element
p[0]:2039
p[1]:2039
p[2]:2039
p[3]:2039
p[4]:2039
p[5]:2039
p[6]:2039
p[7]:2039
p[8]:2039
p[9]:2039
公共课程表
{
公共类链接
{
public LinkedList list=new LinkedList();
公共链接(LinkedList值)
{
列表=值;
}
公共链接(int值)
{
list.add(Integer.valueOf(value));
}
}
专用链路p[]=新链路[10];
公共附表(
{
LinkedList l=新建LinkedList();
l、 加法(整数。值为(2));
l、 加法(整数.valueOf(0));
l、 加上(整数值(3));

对于(int j=0;j而言,问题在于您正在使用相同的
LinkedList
初始化每个
链接
实例:

LinkedList l=新建LinkedList();
l、 加法(整数。值为(2));
l、 加法(整数.valueOf(0));
l、 加上(整数值(3));

对于(int j=0;jp请尝试更具体地表达你的问题。我真的不明白你在说什么。你面临什么问题?请正确地重新表达你的问题..OP在评论中已经说明了问题。只需检查问题句子上方的代码就可以理解了。请注意。我使用了新的链接构造函数来添加元素,但它将删除现有元素,并只添加一个新元素。@AKWARD您应该了解代码在做什么。对于这些情况,您应该使用调试器,也许还应该使用一些
System.out.println(…);
行以查看变量的行为。请注意,您的
链接
类有一个
链接列表
构造函数,该构造函数正在替换
链接列表
属性的值。是的,它正在工作。我正在为每次迭代创建新的链接列表,thanks@AKWARD别忘了把这篇文章标为答案通过单击帖子旁边的复选框:)。
LinkedList<Integer> l = new LinkedList<Integer>();
l.add(Integer.valueOf(2));
l.add(Integer.valueOf(0));
l.add(Integer.valueOf(3));
for(int j=0;j<p.length;j++)
//it will be the same LinkedList<Integer> l per all the instances in the array
    p[j] = new link(l);