java一条for循环打印多维数组

来源:互联网 发布:台湾用大陆网络语言 编辑:程序博客网 时间:2024/06/02 17:42

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循环遍历。


欢迎给出不同实现及深层次探讨。

1 0
原创粉丝点击