Empty是一个以getValue()作为方法的类,this.k是一个以Object [] []为类型的矩阵,它的每个字段都可以有树类型的对象:空,中性和其他。 我想在一个链表中插入许多矩阵,只改变一个值
public LinkedList<Object[][]> increment(int i,int j)
{
LinkedList<Object[][]> l=new LinkedList<>();
Object[][] o;
for(int a=1;a<10;a++)
{
o=this.k;
((Empty) o[i][j]).setValue(a);
l.add(o);
}
for(Object[][] oo:l)
{
System.out.println(((Empty) oo[i][j]).getValue());
}
return l;
}
输出假设是这样的:
1
2
3
4
5
6
7
8
9
但它只打印最后一个数字:
9
9
9
9
9
9
9
9
9
答案 0 :(得分:0)
实际上,LinkedList<Object[][]> l
中的每个元素都引用了相同的this.k
,并且它包含您在上一个中修改的值。请在每次迭代中新建k
的对象。