我有以下情况:
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这种情况下)访问?
谢谢!