Java列表<;int[]>;未正确填充

Java列表<;int[]>;未正确填充,java,list,Java,List,我写下了下面的代码 ArrayList<int []> l = new ArrayList<>(); int [] temp = new int[2]; int n=1; for(int i=0;i<10;i++) { for(int j=0;j<2;j++) { temp[j]=n++; } l.add(temp); }

我写下了下面的代码

    ArrayList<int []> l = new ArrayList<>();
    int [] temp = new int[2];
    int n=1;
    for(int i=0;i<10;i++)
    {
        for(int j=0;j<2;j++)
        {
            temp[j]=n++;
        }
        l.add(temp);
    }

    for(int i=0;i<10;i++)
    {
        for(int j=0;j<2;j++)
        {
            System.out.print(l.get(i)[j] + " ");
        }
        System.out.println();
    }

我不明白为什么输出是这样的。我正在用临时数组填充列表,该数组每次都在更改。我做错了什么?

您正在使用对同一数组对象的多个引用填充
列表。必须在循环的每次迭代中创建一个新数组,以将元素添加到
列表中

for (int i = 0; i < 10; i++) {
    int [] temp = new int[2];
    for (int j = 0; j < temp.length; j++) {
        temp[j] = n++;
    }
    l.add(temp);
}
for(int i=0;i<10;i++){
int[]temp=新的int[2];
对于(int j=0;j
for (int i = 0; i < 10; i++) {
    int [] temp = new int[2];
    for (int j = 0; j < temp.length; j++) {
        temp[j] = n++;
    }
    l.add(temp);
}