2016-03-22 54 views
1

編輯:也許這是一個3D數組?我不想使用ArrayList。在Java中2個數字的數組

我知道這是基本的,但我仍然無法繞過陣列。所以我想創建一個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 

只是作爲一個例子,如果我試圖填補(2,5)在這一切通過for循環,我會做:

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

+0

如果你想在每一個元素的兩個數字你需要一個對象類型(比如'Pair ')。 –

+0

我可以在不使用ArrayList的情況下做類似的事嗎?也許是3D陣列? – bov25

+0

你可以做一個Pair [] []'。 –

回答

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