我有以下情况:
final int I = 10;
final int MU = 100;
final int P = 100;
int[][] a = new int[I][MU];
int[][] b = new int[I][P];
for(int i = 0; i < I; i++) {
for(int mu = 0; mu < MU; mu++) {
for(int p = 0; p < P; p++) {
a[i][mu] = ... // something
b[i][p] = ... // something
}
}
}
如您所见,我使用了几个具有相同维度但运行在不同索引上的数组。在此代码中,以下错误可能导致ArrayIndexOutOfBoundsException
, 因为mu
范围大于i
:
a[mu][i] = ...
原则上,我可以捕捉到这个错误。但是,以下错误更难捕捉:
b[i][mu] = ...
这里不会有运行时异常,因为mu
与p
. 但是,此错误确实会导致代码中出现语义问题。
最后,我的问题是:对这些数组进行编程的最佳方法是什么,使得数组a
只能使用正确的索引(i
在mu
这种情况下)访问?
谢谢!