此分配的目標是創建二維數組,然後返回數組中具有最大值的行。當我嘗試調用在main方法的方法,我得到如下:Java 2D數組:具有最大值的返回行
java.lang.ArrayIndexOutOfBoundsException:2
在這一點上,我不知道如何着手。
public class MDArray
{
private double[][] mdarray;
public MDArray(double[][] a)
{
mdarray = new double[a.length][];
for(int i = 0; i < a.length; i++)
{
mdarray[i] = new double[a[i].length];
for(int j= 0; j < a[i].length; j++)
{
mdarray[i][j] = a[i][j];
}
}
}
public double[] max()
{
double[] maxVal = new double[mdarray.length];
for(int i = 0, j = i + 1; i < maxVal.length; i++)
{
for(int k = 0; k < mdarray[i].length; k++)
{
if(mdarray[i][k] > mdarray[j][k])
{
maxVal = mdarray[i];
}
}
}
return maxVal;
}
}
如果您的代碼只是覆蓋它,您的構造函數接受輸入二維數組的目的是什麼? –
它真的是覆蓋,還是他手動複製每一個值,而不是隻是'mdarray = a;'? – Gendarme
@Georgeme right you are –