java基础之多维数组

1.二维数组:保存多个相同数据类型的一维数组

数据类型[][] 数组名 = 初值;

2.声明方式(和一维数组类似):

声明方式1:

数据类型[][] 数组名 = new 数据类型[index1][index2];

也可以叫index1行index2列

index1是指二维数组内有多少个一维数组;

index2是指每个一维数组内有多少个元素.

声明方式2:

数据类型[][] 数组名 = new 数据类型[][]{

                {一维数组1},

                {一维数组2},

                .....

            }

声明方式3(简化):

数据类型[][] 数组名 = {
                {一维数组1},
                {一维数组2},
                .....
            }


三维数组(保存的是多个二维数组):声明方式和二维类似,只不过要在数据类型后多加一个中括号

其他数组以此类推.可以叫几层几行几列

代码例子:

public class Kll {
    public static void main(String[] args) {
        int[][] arr=newint[3][2];//声明一个二维数组:数组里面有三个一维数组,且每个一维数组内有两个元素的二维数组
        System.out.println(arr.length);//arr.length的长度是有一维数组的个数(指index1)

        //二维数组创建

        //创建二位数组:1,2,3  4,5,6(两行三列)
        int[][] arr1 = new int[][] {
            {1, 2, 3},
            {4, 5, 6}
        };
        //arr1[0] 获取的是二维数组的第1个元素(是一个一维数组)
        System.out.println(arr1[0].length);//是二维数组的第一个元素(即第一个一维数组)的长度
        //打印的是地址:[[I@33909752 两个[:表示二维数组(所以有几个就表示几位数组);字符I:表示int类型;后边的是十六进制的堆内存地址
        //System.out.println(arr1);

        //遍历二维数组
        //方式一:两个for循环
        for (int i = 0; i < arr1.length; i++) {//外层循环遍历的是二维数组的元素(即一维数组)
            for (int j = 0; j < arr1[i].length; j++) {//内层循环遍历的是当前正在遍历的一维数组内的元素
                System.out.print(arr1[i][j] +"\t");
            }
            System.out.println();
        }
        //方式二:单层循环
        /*
         for (int i = 0; i < arr1.length; i++) {//循环遍历二维数组的元素的个数(即一维数组)

            System.out.println(Arrays.toString(arr1[i]));//打印一维数组
        }
        */

        //三维数组创建

        //声明三维数组2 2 3;2层2行3列
        //2个元素(二维数组),每个二维数组内有2个一维数组,每个一维数组有3个元素
        int[][][] arr2 = {
                {
                    {1, 2, 3},
                    {4, 5, 6}
                },
                {
                    {7, 8, 9},
                    {10, 11, 12}
                },
        };
        //遍历方式 :与二维类似,不过每种方式都会多一个for循环
        //方式一:
        for (int i = 0; i < arr2.length; i++) {//遍历的是有几个(元素)二维数组
            for (int j = 0; j < arr2[i].length; j++) {//遍历的是当前正在遍历的二维数组有几个一维数组
                for (int j2 = 0; j2 < arr2[i][j].length; j2++) {//遍历是当前正在遍历的一维维数组内有几个元素
                    System.out.print(arr2[i][j][j2]+"\t");//去掉ln不换行,\t是制表符,为了对齐隔开元素,便于查看
                }
                System.out.println();
            }
            System.out.println();
        }
        //方法二:
        /* 
         for (int i = 0; i < arr2.length; i++) {//遍历的是有几个(元素)二维数组
            for (int j = 0; j < arr2[i].length; j++) {//遍历的是当前正在遍历的二维数组有几个一维数组
                System.out.println(arr2[i][j]+"\t");//直接打印一维数组
            }
            System.out.println();   
         }
         */
    }
}

其他多维数组遍历方式类似,请仔细参考理解

猜你喜欢

转载自blog.csdn.net/KongLingLei_08225/article/details/82024232
今日推荐