Java设计2维数组
问题描述:
我有一个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, 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)和他们后面的“空”数据并使用子阵列的长度。
答
您可以忽略所有忽略的值;一个java 2d数组只是一个数组数组。没有理由为什么他们都必须是相同的长度。
答
不,这是没有必要的固定尺寸为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("");
}
请不要使用有效答案删除有效的问题。如果你已经完成了这个问题,接受正确的答案,并且如果你需要问一个新的问题。 – 2010-10-17 02:57:04
好吧,我将重新修改问题以解决问题并接受 – user236501 2010-10-17 03:12:40