java给一个二维数组赋值,不明白哪里出问题了

为啥输出的全是20,21,20,21,20,21,看不出哪里覆盖了啥,我准备输入的是0,1,10,11,20,21

        int[][] a=new int[3][2];
        int[] b=new int[2];
        for (int i=0;i<3;i++){
            for (int j=0;j<2;j++){
                b[j]=i*10+j;
            }
            a[i]=b;
        }

就是准备通过b给a赋值的

你每次都在更新这个b数组里的值,自然a里面就都是[20, 21](因为最后b会变成[20, 21])了,你的a里面其实是这样的[b, b, b],而你想要的结果是这样的[b1, b2, b3],因此把b放第一个for循环里。

你在哪儿输入的?

你输出的语句在哪呢

参考如下:

int[][] a = new int[3][2];
        for(int i=0;i<3;i++){
            for(int j = 0;j<2;j++){
                a[i][j] = i*10 +j;
            }
        }