目前我正在摆弄二维数组用于学习目的,并且遇到了一个我无法找到解决方案的问题。
目标是构建以下输出(请参见下面的网格)
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
我相信我已经通过以下代码实现了这一点。
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
}
}
答案 0 :(得分: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