[英]How to check if all lines in a 2d int array have the same length?
如果我有一个一维数组,我可以使用a.length
轻松检查行的长度。 在二维数组中,我可以使用类似这样的方式检查所有列的长度
int[][] a = {{5,3,4,6,7,8,9,1,2},
{6,7,2,1,9,5,3,4,8},
{1,9,8,3,4,2,5,6,7},
{8,5,9,7,6,1,4,2,3},
{4,2,6,8,5,3,7,9,1},
{7,1,3,9,2,4,8,5,6},
{9,6,1,5,3,7,2,8,4},
{2,8,7,4,1,9,6,3,5}};
for (int k = 0; k < a.length; k++) {
if (a[k].length != 9) return false
}
我什至不确定这是否正确。 如何检查不同的行? 当我有一个 4x4 矩阵,并且最后一行只包含 3 个值而不是 4 个时,我怎样才能找到它?
(假后缺少分号。)您的代码是正确的。 如果你通过了一个未知大小的int[][] a
:
boolean isRectangularMatrix(int[][] a) {
int columnCount = 0; // Maybe interesting too.
boolean rectangular = true;
if (a.length != 0) {
columnCount = a[0].length;
for (int k = 1; k < a.length; k++) {
if (a[k].length != columnCount) {
//return false; // Or:
rectangular = false;
break;
}
}
}
return rectangular;
}
boolean isSquareMatrix(int[][] a) {
int columnCount = 0; // Maybe interesting too.
boolean square = true;
if (a.length != 0) {
columnCount = a[0].length;
if (a.length != columnCount) {
square = false;
} else {
for (int k = 1; k < a.length; k++) {
if (a[k].length != columnCount) {
//return false; // Or:
square = false;
break;
}
}
}
}
return square;
}
您不需要检查是否相应地创建了数组:
int[][] a = new int[M][N];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.