2017-04-06 87 views
0

目前我正在擺弄用於學習目的的二維數組,並且遇到了一個我看不到解決方案的問題。有效地遍歷二維數組

的目標是建立以下輸出(見格進一步下跌)

0.0: 0.1 
1.0: 1.1 
2.0: 2.1 
3.0: 3.1 
4.0: 4.1 

0.0: 0.2 
1.0: 1.2 
2.0: 2.2 
3.0: 3.2 
4.0: 4.2 
ect 

我相信我有下面的一段代碼achived這一點。

StringBuilder sb2 = new StringBuilder(); 
String newline = System.getProperty("line.separator"); 

//grid1[0].length = 7 

for (int col = 0; col < (grid1[0].length - 1); col++) { 
     for (int row = 0; row < grid1.length; row++) { 
      sb2.append(grid1[row][0] + ": "); 
      sb2.append(grid1[row][col+1] + newline); 
     } 
     sb2.append(System.getProperty("line.separator")); 
    } 
    System.out.println(sb2.toString()); 

我的問題是,如果有可能通過以相反的順序運行在陣列上(見下文),以達到同樣的目標,如果他們的是一種更有效的方式是什麼,我已抵達。

for (int row = 0; row < grid1.length; row++) { 
    for (int col = 0; col < grid1[0].length; col++) { 
     //something 
    } 
} 

柵格 - 陣列[5] [7] enter image description here

回答

0

是的,你可以,你可以使用:

for (int row = grid1.length - 1; row >= 0; row--) { 
    for (int col = grid1[0].length - 1; col >= 0; col--) { 
     ... 
    } 
} 

編輯

我想這和它告訴我:

int grid1[][] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; 
for (int row = grid1.length - 1; row >= 0; row--) { 
    for (int col = grid1[0].length - 1; col >= 0; col--) { 
     System.out.print(grid1[row][col]+ " "); 
    } 
    System.out.println(); 
} 

9 8 7 
6 5 4 
3 2 1 

相反的:

1 2 3 
4 5 6 
7 8 9 
+0

謝謝您的回答!但是,這不會給我的價值從右到左而不是從左到右? –

+0

@CristianMatthiasAmbæk檢查我的編輯,我試過這個例子,它工作正常 –