Java List <int [] =“”>未正确填充

时间:2017-03-21 07:38:55

标签: 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);
    }

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

输出:

 19 20 
 19 20 
 19 20 
 .
 .
 19 20

我无法理解为什么输出是这样的。我正在使用临时数组填充列表,每次都会更改。我做错了什么?

1 个答案:

答案 0 :(得分:6)

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

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);
}