2010-10-17 97 views
1

我有一个2维数组。是否有必要修复大小,使每一行具有相同的列数?Java设计2维数组

data = {{ 2, 6, 3, 3, 1 }, 
     { 4, 6, 3, 7, 5 }, 
     { 8, 3, 0, 0, 0}, 
     { 13, 12, 0, 0, 0 }, 
     { 5, 1, 3, 9, 5, 0}} 
+0

请不要使用有效答案删除有效的问题。如果你已经完成了这个问题,接受正确的答案,并且如果你需要问一个新的问题。 – 2010-10-17 02:57:04

+0

好吧,我将重新修改问题以解决问题并接受 – user236501 2010-10-17 03:12:40

回答

5
{{ 0, 2, 6, 3, 3, 1 }, 
{ 1, 4, 6, 3, 7, 5 }, 
{ 0, 8, 3 }, 
{ 1, 13, 12 }, 
{ 0, 5, 1, 3, 9, 5 }} 

Java中数组的阵列不一定是“矩形”的。只需摆脱哨兵(-1)和他们后面的“空”数据并使用子阵列的长度。

2

您可以忽略所有忽略的值;一个java 2d数组只是一个数组数组。没有理由为什么他们都必须是相同的长度。

1

不,这是没有必要的固定尺寸为Java的二维数组每一行的列。

在扩展的“TofuBeer”的答案可以分配如下动态2D阵列。下面的示例显示了trangular矩阵:

int[][] array2D; 

//Allocate each part of the two-dimensional array individually. 
array2D = new int[10][];  // Allocate array of rows 
for (int r=0; r < array2D.length; r++) { 
    array2D[r] = new int[r+1]; // Allocate a row 
} 

//Print the triangular array (same as above really) 
for (int r=0; r<array2D.length; r++) { 
    for (int c=0; c<tarray2D[r].length; c++) { 
     System.out.print(" " + array2D[r][c]); 
    } 
    System.out.println(""); 
}