Java 中 2 个数字的二维数组

2d array of 2 numbers in Java

编辑:也许它是一个 3 维数组?我不想使用 ArrayList。

我知道这是基本的,但我仍然无法理解数组。所以我想创建一个 7 行 4 列的二维数组,如下所示:

  0 1 2 3
0        
1        
2        
3 
4
5
6

我想在每个位置放两个数字。例如,

   0        1        2        3
0 (1, 8)   (2, 7)   (3, 6)   (4, 5)      
1        
2        
3 
4
5
6

举个例子,如果我试图通过 for 循环将 (2,5) 全部填入其中,我会这样做:

int[][][2] table = new int[7][4][2];
for (int i = 0; i < 7; i++) {
    for (int j = 0; i < 4; j++) {
    table[i][j][1] = 2;
    table[i][j][2] = 5;
    }
}

这是不对的。我不知道该怎么做。 另外,如果正确,我将如何引用特定的单元格? 就像在第一个示例中一样,如果我想要 (1,8),我会输入:table[1][1] 吗? 或者,如果我只想要 1,我会输入:table[1][1][1]?

您的代码中有 3 个错误:

int[][][2] table = new int[7][4][2]; // <== Remove 2
for (int i = 0; i < 7; i++) {
    for (int j = 0; i < 4; j++) {    // <== Change i to j
        table[i][j][1] = 2;          // <== Arrays are zero-based
        table[i][j][2] = 5;          // <== -
    }
}

更正后的代码是:

int[][][] table = new int[7][4][2];
for (int i = 0; i < 7; i++) {
    for (int j = 0; j < 4; j++) {
        table[i][j][0] = 2;
        table[i][j][1] = 5;
    }
}

使用 System.out.println(Arrays.deepToString(table)) 进行测试产生:

[[[2, 5], [2, 5], [2, 5], [2, 5]], [[2, 5], [2, 5], [2, 5], [2, 5]], [[2, 5], [2, 5], [2, 5], [2, 5]], [[2, 5], [2, 5], [2, 5], [2, 5]], [[2, 5], [2, 5], [2, 5], [2, 5]], [[2, 5], [2, 5], [2, 5], [2, 5]], [[2, 5], [2, 5], [2, 5], [2, 5]]]

要更新给定的值,您可以替换第三个数组,或直接更新值。在这里我展示了两种更新前两种的方法:

int[][][] table = new int[7][4][2];

table[0][0] = new int[] { 1, 8 };

table[0][1][0] = 2;
table[0][1][1] = 7;
[[[1, 8], [2, 7], [0, 0], [0, 0]], [[0, 0], [0, 0], [0, 0], [0, 0]], [[0, 0], [0, 0], [0, 0], [0, 0]], [[0, 0], [0, 0], [0, 0], [0, 0]], [[0, 0], [0, 0], [0, 0], [0, 0]], [[0, 0], [0, 0], [0, 0], [0, 0]], [[0, 0], [0, 0], [0, 0], [0, 0]]]

您甚至可以一次替换整个第一行:

int[][][] table = new int[7][4][2];
table[0] = new int[][] { {1, 8}, {2, 7}, {3, 6}, {4, 5} };
[[[1, 8], [2, 7], [3, 6], [4, 5]], [[0, 0], [0, 0], [0, 0], [0, 0]], [[0, 0], [0, 0], [0, 0], [0, 0]], [[0, 0], [0, 0], [0, 0], [0, 0]], [[0, 0], [0, 0], [0, 0], [0, 0]], [[0, 0], [0, 0], [0, 0], [0, 0]], [[0, 0], [0, 0], [0, 0], [0, 0]]]