具有一维数组的java矩阵运算
这里有两种方法将两个1-D数组相乘,每个数组包含五个整数,并显示生成的2-D(5x5)数组。不幸的是,我没有得到我所希望的结果,因为我得到了一个ArrayIndexOutOfBoundsException。我检查了我的代码以查找bug,但似乎找不到错误。错误消息还告诉我错误发生在mult[i][j] = array1[i]*array2[j];
语句中
public static int [][] matrixMult(int [] array1, int [] array2){
int [][] mult = new int [imax][jmax];
int i = 0;
int j = 0;
while(i < imax){
while(j < jmax){
mult[i][j] = array1[i]*array2[j];
if(j == jmax-1){
i++;
j = 0;
}else{
j++;
}
}
}
return mult;
}
public static void print2DArray(int array[][]){
int i = 0;
int j = 0;
while(i < imax){
while(j < jmax){
System.out.print("(" + i + ", " + j + ") " + array[i][j]);
if(j == jmax-1){
i++;
j = 0;
}else{
j++;
}
}
}
}
# 1 楼答案
应该在
j == jmax-1
时中断内部循环,否则在下一次迭代中i
将变为5,这将给您ArrayIndexOutOfBoundsException