为各种大小的2d阵列有效地添加索引

时间:2013-05-10 18:57:43

标签: java arrays multidimensional-array

如果有一组不同维度的二维数组,请说:

float[][] P = new float[2][3];
float[][] B = new float[2][2];
float[][] A = new float[32][2];
float[] E = new float[2];

目前没有值。

是否可以通过循环遍历最大集体维度的索引值(在本例中)来为数组的每个索引添加值:

for (int i=0; i<32; i++){
    for (int j=0; j<3; j++){
         //doSomething to (P[i][j]) if P has this index
         //doSomething to (B[i][j]) if B has this index
         //doSomething to (A[i][j]) if A has this index
         //doSomething to (E[i][j]) if E has this index         
    }
}

否则,必须有四个独立的循环!

谢谢。

1 个答案:

答案 0 :(得分:1)

for (int i=0; i<32; i++){
    for (int j=0; j<3; j++){
         if(i < 2)
           doSomething(P[i][j]);
         if(i < 2 && j < 2)
           doSomething(B[i][j]);
         if(j < 2)
           doSomething(A[i][j]);
         if(i == 0 && j < 2)
           doSomething(E[i][j]);         
    }
}

i == 0需要E部分,因为您只想修改一次,而不是32次。请注意,只有B需要两个条件,因为for循环强制执行其他条件。