Java中2个数字的2d数组

时间:2016-03-22 22:53:15

标签: java arrays 2d

编辑:也许这是一个3D阵列?我不想使用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

举个例子,如果我试图在via 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]?

1 个答案:

答案 0 :(得分: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]]]

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

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]]]