N维规则矩阵数组,可以只用一条语句遍历。
public class Main {
public static void main (String[] args) {
System.out.println("----------二维数组----------" );
int arr[][] = {
{1 ,1 ,1 },{2 ,2 ,2 },{3 ,3 ,3 }
};
int arr_row = arr.length;
int arr_col = arr[0 ].length;
for (int i = 0 ; i < arr_row * arr_col; i++)
System.out.print(arr[i / arr_col][i % arr_row] + " " );
System.out.println("\n\n----------三维数组----------" );
int brr[][][] = {
{
{1 ,2 ,3 },{4 ,5 ,6 }
},{
{7 ,8 ,9 },{10 ,11 ,12 }
}
};
int brr_row = brr.length;
int brr_col = brr[0 ].length;
int brr_height = brr[0 ][0 ].length;
for (int i = 0 ; i < brr_row * brr_col * brr_height; i++)
System.out.print(brr[i / brr_col / brr_height][i / brr_height % brr_col][i % brr_height] + " " );
System.out.println("\n\n----------四维数组----------" );
int crr[][][][] = {
{
{
{1 ,2 ,3 },{4 ,5 ,6 }
},{
{7 ,8 ,9 },{10 ,11 ,12 }
},{
{13 ,14 ,15 },{16 ,17 ,18 }
}
}
};
int crr_row = crr.length;
int crr_col = crr[0 ].length;
int crr_height = crr[0 ][0 ].length;
int crr_width = crr[0 ][0 ][0 ].length;
for (int i = 0 ; i < crr_row * crr_col * crr_height * crr_width; i++)
System.out.print(crr[i/crr_col/crr_height/crr_width][i/crr_width/crr_height%crr_col][i/crr_width%crr_height][i%crr_width] + " " );
}
}
运行结果:
----------二维数组----------
1 1 1 2 2 2 3 3 3
----------三维数组----------
1 2 3 4 5 6 7 8 9 10 11 12
----------四维数组----------
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
对于此法,开阔思维可以,项目中使用不但无利于代码维护,且实际效率略低于多重for循环遍历。
欢迎给出不同实现及深层次探讨。