2012-01-21 69 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