2013-05-10 48 views
0

的二維陣列如果一個人有一組不同尺寸的二維陣列,說:Efficent除了指數以各種尺寸

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
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循環執行。