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循环遍历。
欢迎给出不同实现及深层次探讨。