2017-04-06 115 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检查我的编辑,我试过这个例子,它工作正常 –