只想填写二维数组的顶行和底行

时间:2018-10-09 03:56:53

标签: java arrays

我只想填写未初始化数组的顶行和底行:

for (int i = 0; i < ROWS; i++) {
    for (int j = 0; j < COLUMNS; j++) {
        if (i == 0 || i == (ROWS - 1)) {
            values[i][j] = i;
        }
    }
}

但是,当我这样做时,它将用0填充介于两者之间的所有行:

0000000000
0000000000
0000000000
0000000000
4444444444

为什么会这样?

2 个答案:

答案 0 :(得分:2)

Java中任何int的默认值为零(0)。因此,任何未设置的将具有此值。无论是单个int还是它们的数组都是如此。这样的结果是您的代码未触及的行包含零。

答案 1 :(得分:2)

仅显式访问顶部和底部行:

for (int i=0; i < ROWS; i+=ROWS-1) {
    for (int j=0; j < COLUMNS; j++) {
        values[i][j] = i;
    }
}

这避免了不必要地迭代每一行。请注意,您看到的零可能是int数组的默认值。