2015-10-25 217 views
-1

我想初始化下面的地圖作爲二維數組,但不知何故我無法理解如何初始化二維數組下的地圖。不知何故,從圖表看起來很混亂。以下是圖表:初始化二維數組

enter image description here

這是做正確的方式?

byte graph[][] = { { 0, 0, 0, 1, 0, 0, 0, 0 }, { 0, 0, 1, 1, 0, 0, 0, 0, }, { 0, 0, 0, 0, 0, 0, 0, 0 }, 
     { 0, 0, 0, 0, 1, 1, 1, 0 }, { 1, 1, 0, 0, 0, 0, 0, 0 }, { 0, 0, 1, 0, 0, 0, 0, 0 } }; 
+0

'初始化map作爲數組...'這是什麼意思? – sam

+0

代碼很好,除非你想從文件,數據庫等初始化圖形。 – Arvind

回答

2

有什麼困惑約​​:

byte graph[][] = { 
    { 0, 0, 0, 1, 0, 0, 0, 0 }, 
    { 0, 0, 1, 1, 0, 0, 0, 0 }, 
    { 0, 0, 0, 0, 0, 0, 0, 0 }, 
    { 0, 0, 0, 0, 1, 1, 1, 0 }, 
    { 1, 1, 0, 0, 0, 0, 0, 0 }, 
    { 0, 0, 1, 0, 0, 0, 0, 0 } }; 

可能是最靈活的方式來初始化和這樣的陣列是將數據存儲在文本文件中,像這樣:

0 0 0 1 0 0 0 0 
0 0 1 1 0 0 0 0 
0 0 0 0 0 0 0 0 
0 0 0 0 1 1 1 0 
1 1 0 0 0 0 0 0 
0 0 1 0 0 0 0 0 

然後在讀取數據,並從數據初始化您的數組。這使您可以更輕鬆地更改數據,而無需更改程序。

0

是;只要它編譯,它是「正確的」。 還有其他的方法來初始化這個數組,但我不確定爲什麼這會讓人困惑。

0
// Create new 2-dimensional array. 
int[][] values = new int[6][8]; 

// Assign elements within it. 
values[0][3] = 1; 
values[1][2] = 1; 
values[1][3] = 1; 
values[3][4] = 1; 
values[3][5] = 1; 
values[3][6] = 1; 
values[4][0] = 1; 
values[4][1] = 1; 
values[5][2] = 1; 
// Loop over top-level arrays. 
for (int i = 0; i < values.length; i++) { 

    // Loop and display sub-arrays. 
    int[] sub = values[i]; 
    for (int x = 0; x < sub.length; x++) { 
    System.out.print(sub[x] + " "); 
    } 
    System.out.println(); 
}