在 Java 中,二維數組的賦值不會自動復用。二維數組實際上是一個數組的數組,也就是說,每個元素都是一個數組。當你為一個元素(即子數組)賦值時,它只會影響這個特定的子數組,而不會影響其他子數組。
例如,假設我們有以下二維數組:
int[][] matrix = new int[3][3];
如果我們為第一行賦值:
matrix[0] = new int[]{1, 2, 3};
這將只影響 matrix[0]
,而 matrix[1]
和 matrix[2]
仍然保持其默認值(即 null
,因為它們還沒有被初始化)。
如果你想要在二維數組中復用值,你需要手動實現這個邏輯。例如,你可以創建一個方法來填充二維數組的特定區域:
public void fillMatrix(int[][] matrix, int rowStart, int colStart, int[] values) {
for (int i = rowStart; i < rowStart + values.length; i++) {
for (int j = colStart; j < colStart + values.length; j++) {
matrix[i][j] = values[i - rowStart];
}
}
}
然后你可以使用這個方法來填充二維數組:
int[] values = {1, 2, 3};
fillMatrix(matrix, 0, 0, values);
這將填充 matrix
的第一行,就像我們之前為 matrix[0]
賦值一樣。但是,請注意,這個方法不會影響其他行或列。