0

我今天有2个疑问。1)我正在尝试打印一个二维数组(矩阵 Nx),我正在使用这种方法:

System.out.println(Arrays.toString(Matr)); 

矩阵只有 int 变量。

这是输出,为什么?

[[I@15db9742, [I@6d06d69c, [I@7852e922, [I@4e25154f, [I@70dea4e, [I@5c647e05, ........etc

2)使用 AtomicIntegers 我必须将所有矩阵设置为 0。我使用了以下代码:

AtomicInteger[][]Matr=new AtomicInteger[n][m];

    for(int i=0; i<n; i++) {
        for(int j=0; j<m; j++) {
            Matr[i][j].set(0);
        }
    }

但老师的解决方案是:

AtomicInteger[][] A = new AtomicInteger[n][m];
    for (int i = 0; i < A.length; i++)
        for (int j = 0; j < A[i].length; j++)
            A[i][j] = new AtomicInteger(0);

有区别吗?我的代码错了吗?

4

2 回答 2

0

您的代码将在尝试将值设置为空对象时抛出空指针异常。您必须先初始化变量,然后设置值。

于 2017-09-26T10:57:33.510 回答
0

关于你的第一个问题使用

System.out.println(Arrays.deepToString(Matr));
于 2017-09-26T11:06:41.913 回答