package homework3;
public class DoubleMatrix
{
private double[][] doubMatrix;
public DoubleMatrix (int row, int col)
{
if(row > 0 & col > 0)
{
makeDoubMatrix(1,1);
}
else
{
row = 1;
col = 1;
}
}
public DoubleMatrix(double[][] tempArray)
{
int k = tempArray.length;
if(tempArray != null)
{
for(int i = 0; i < tempArray.length;i++)
{
if(k== tempArray[i].length)
{
}
}
}
else
{
makeDoubMatrix(1,1);
}
}
}
这是我应该开始我的任务: 写一个名为DoubleMatrix的类,在其中声明一个2-dim。双精度数组(我称之为doubMatrix)作为私有实例变量。包括以下构造函数或实例方法(此处为静态方法):
有人检查一下,如果我在第二个构造函数中检查了吗?另外我在第二个中遗漏了分配语句,因为我不知道要分配什么,任何人都可以告诉我要分配什么,因为问题只说分配,但没有说分配到什么值。
答案 0 :(得分:2)
您必须首先检查每一行,不管它们是否长度相同。您可以维护boolean flag
变量,只要您看到当前行与下一行的长度不同,就可以将其设置为false
。
您可以尝试以下代码,并测试它是否有效: -
public DoubleMatrix(double[][] tempArray)
{
if(tempArray != null)
{
boolean flag = true;
for(int i = 0; i < tempArray.length - 1;i++)
{
// Check each row with the next row
if(tempArray[i].length != tempArray[i + 1].length)
{
// as you find the row length not equal, set flag and break
flag = false;
break;
}
}
if (flag) {
doubleMatrix = tempArray;
} else {
makeDoubleMatrix(1,1);
}
} else {
makeDoubleMatrix(1, 1);
}
}
答案 1 :(得分:1)
public DoubleMatrix(double[][] tempArray)
{
//Calling tempArray.length if tempArray is null will get you an error
if(tempArray != null)
{
for(int i = 0; i < tempArray.length;i++)
{
for(int j=0;j<tempArray[i].length;j++)
{
doubleMatrx[i][j] = tempArray[i][j];
}
}
}
else
{
makeDoubMatrix(1,1);
}
}
同样在Java中,2D数组在每一行中始终具有相同数量的列,因为它的声明类似于int bob[][] = new int[a][b]