2012-01-21 67 views
5

隨着我創建我得到一個數組像這樣我的瓷磚編輯:初始化數組的數組

int [][] Level02 = new int[][] { 
          { 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12}, 
          { 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12}, 
          { 11, -1, -1, -1, -1, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 13, -1, -1, 13, -1, -1, -1, -1, 12}, 
          { 11, 13, -1, -1, 27, 27, 27, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 13, -1, -1, -1, -1, -1, 13, 13, -1, -1, -1, 13, 13, -1, -1, -1, 32, -1, -1, 27, 27, 25, 25, 27, 27, -1, -1, 32, 12}, 
          { 16, 16, 16, 16, 16, 16, 16, 16, 16, -1, -1, 13, 13, -1, -1, -1, 13, -1, -1, -1, 25, 25, 25, -1, -1, -1, 27, 27, 27, 27, -1, -1, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16}, 
          { 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 16, 16, 16, 16, 16, 1, 1, 1, 1, 1, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 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, 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, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} 
         } 

所以它打印出一個二維數組。

的問題是,我有上百個,這些在一類和如何組織他們能夠做到這樣的:Levels.getlevelCount;

所以我想通了,我可以做一個3維數組:int [][][] AllLevels = new int [][][]

但我的問題是: 是否有反正又有幾分像這樣的內聲明一個數組:

int[][][] all = new int[][][]{ 


     int [][] Level01= new int[][] { 
    { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
    { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
    { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
    { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
    { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
    { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
    { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
    { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
    { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
    { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}}; 

int [][] Level02= new int[][] { 
    { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
    { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
    { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
    { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
    { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
    { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
    { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
    { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
    { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, 
    { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}}; 


     }; 

以上代碼給出了一個編譯錯誤。

+0

謝謝戴夫! – AndroidXTr3meN

+0

如果您有這種類型的數組,請考慮從代碼中刪除數據並從文件/ db初始化數組。那些將不得不維護你的代碼的人會感謝你。 – SJuan76

+0

我沒有任何文件。我的瓷磚編輯器給了我這個。我看不出我的平面設計師會如何處理:D – AndroidXTr3meN

回答

2

你不能完全做你在那裏,但你可以做到這一點。

int [][] twod1 = {{1, 1,}, {-1, -1}}; 

int [][] twod2 = {{1, 1,}, {-1, -1}}; 

int [][][] threed = {twod1, twod2}; 

或者,如果您願意,您可以反向操作。

int [][][] threed2 = {{{1, 1,}, {-1, -1}}, 
        {{1, 1,}, {-1, -1}}}; 

int [][] twod3 = threed2[0]; 

int [][] twod4 = threed2[1]; 

你也可以做到內聯,但我不認爲它很可讀。如果你使用內聯,你也不能使用短手初始化,你必須爲每個2維int數組聲明new int[][]

int [][] twod5; 

int [][] twod6; 

int [][][] threed3 = { twod5 = new int[][]{{1, 1,}, {-1, -1}}, 
         twod6 = new int[][]{ {1, 1,}, {-1, -1}}}; 
+0

太棒了!但是他們是否有人要取代{twod1,twod2};實際初始化? – AndroidXTr3meN

+0

@ AndroidXtr3meN我更新我的答案與反向場景是更接近你所需要的? – Dev

+0

謝謝! 10個字符 – AndroidXTr3meN

2
int[][][] all = ..... 

int[][] level1 = all[0]; 
int[][] level2 = all[1]; 
2

當然,這裏有一個2D例如:

int[] level1, level2; 
int[][] all = new int[][] { 
    level1 = new int[]{ 1, 2 }, 
    level2 = new int[]{ 3, 4 } 
}; 

所以我們首先聲明每個級別level1level2的變量。我假設你想從你的例子中引用它們。如果沒有,那麼你可以將它們排除在外。所以多維數組只是一個數組數組...所以你可以簡單地初始化頂層數組中的每個元素。

然後注意賦值運算符=實際上返回一個值,賦值的值。

+0

嗯,我的意思是在3日宣佈一個2維數組。另一個字比你顯示的更多一步 – AndroidXTr3meN

+0

你錯過了一個維度。 –

+0

這個想法是一樣的。我剛剛做了一個2D例子來說明所用的概念。 – tskuzzy