0
点赞
收藏
分享

微信扫一扫

Java:二维数组

星巢文化 2022-01-10 阅读 172

二维数组概述
     我们学校每个班有很多个学生,所以,可以用数组来存储,而我们又同时有很多个大数据班。
     这个也应该用一个数组来存储。如何来表示这样的数据呢?Java就提供了二维数组供我们使用。
         由此可见:其实二维数组其实就是一个元素为一维数组的数组。

二维数组的语句定义格式:
     数据类型[][] 变量名 = new 数据类型[m][n];  (推荐这种写法)
         m表示这个二维数组有多少个一维数组
         n表示每一个一维数组的元素个数
     举例:
         int[][] arr = new int[3][2];
         定义了一个二维数组arr
         这个二维数组有3个一维数组,名称是arr[0],arr[1],arr[2]
         每个一维数组有2个元素,可以通过arr[m][n]来获取
         表示获取第m+1个一维数组的第n+1个元素

还有可能看到以下几个写法,它们也是正确的:
     1、int[] arr[] = new int[3][2];
     2、int arr[][] = new int[3][2];

public class Cherris {
    public static void main(String[] args) {
        //定义一个二维数组,使用格式一做初始化
        int[][] arr = new int[3][2];

        System.out.println(arr);  //  [[I@4554617c
        System.out.println(arr[0]); // [I@74a14482
        System.out.println(arr[1]); // [I@1540e19d
        System.out.println(arr[2]); // [I@677327b6

        //想获取第一个一维数组中的第一个元素怎么办呢?
        //首先,得获取第一个一维数组
//        int[] array1 = arr[0];
//        //然后通过索引获取第一个元素
//        System.out.println(array1[0]);
        System.out.println(arr[0][0]);
        System.out.println(arr[0][1]); //获取二维数组中第一个一维数组中的第二个元素
        //ArrayIndexOutOfBoundsException: 2
//        System.out.println(arr[0][2]); //获取二维数组中第一个一维数组中的第二个元素

        System.out.println(arr[1][0]);  //获取二维数组中第二个一维数组中的第一个元素
        System.out.println(arr[1][1]);  //获取二维数组中第二个一维数组中的第二个元素

        System.out.println(arr[2][0]);  //获取二维数组中第三个一维数组中的第一个元素
        System.out.println(arr[2][1]);  //获取二维数组中第三个一维数组中的第二个元素



    }
}

二维数组第二种定义格式:
    数据类型[][] 变量名 = new 数据类型[m][];
    举例:int[][] arr = new int[3][];

public class Cherris {
    public static void main(String[] args) {
        //定义二维数组的第二种格式
        int[][] arr = new int[3][];
        System.out.println(arr);
        System.out.println(arr[0]);
        System.out.println(arr[1]);
        System.out.println(arr[2]);

        //给二维数组种第一个元素赋值一个一维数组
        //赋值后的意义是:表示二维数组种第一个元素是一个长度为4的int类型的一维数组。
        arr[0] = new int[4];
        //赋值后的意义是:表示二维数组种第二个元素是一个长度为5的int类型的一维数组。
        arr[1] = new int[5];
        //赋值后的意义是:表示二维数组种第三个元素是一个长度为10的int类型的一维数组。
        arr[2] = new int[10];
        System.out.println(arr);  //二维数组的地址值
        System.out.println(arr[0]); //二维数组中第一个一维数组的地址值
        System.out.println(arr[1]); //二维数组中第二个一维数组的地址值
        System.out.println(arr[2]);//二维数组中第三个一维数组的地址值


    }
}

二维数组中第三种格式:
        数据类型[][] 变量名 = new 数据类型[][]{{元素…},{元素…},{元素…}};
        举例:int[][] arr = new int[][]{{1,2},{3,4,5},{1,2,34,5}};
简化版格式:
        数据类型[][] 变量名 = {{元素…},{元素…},{元素…}};
        举例:int[][] arr = {{1,2},{3,4,5},{1,2,34,5}};
        表示的是:二维数组arr中有三个一维数组,分别是{1,2},{3,4,5},{1,2,34,5}

public class Cherris {
    public static void main(String[] args) {
        //数组的第三种格式定义
        int[][] arr = {{1,2},{3,4,5},{1,2,34,5}};
        System.out.println(arr); //二维数组的地址值
        System.out.println(arr[0]); //二维数组第一个一维数组的地址值
        System.out.println(arr[1]);//二维数组第二个一维数组的地址值
        System.out.println(arr[2]);//二维数组第三个一维数组的地址值

        //获取二维数组中第一个一维数组的第一个元素
        System.out.println(arr[0][0]);
        System.out.println(arr[0][1]);

        //获取二维数组中第二个一维数组中所有元素
        System.out.println(arr[1][0]);
        System.out.println(arr[1][1]);
        System.out.println(arr[1][2]);

        //获取二维数组中第三个一维数组中所有元素
        System.out.println(arr[2][0]);
        System.out.println(arr[2][1]);
        System.out.println(arr[2][2]);
        System.out.println(arr[2][3]);
//        System.out.println(arr[2][4]);

    }
}

二维数组遍历:

public class Cherris1 {
    public static void main(String[] args) {
        int[][] arr = {{1, 2}, {3, 5}, {7, 8, 4}, {9, 2, 4}};
        for (int i = 0; i <= arr.length - 1; i++) {
//            外层循环遍历到每一个一维数组
            for (int j = 0; j <= arr[i].length - 1; j++) {
                if (j == 0) {
                    System.out.print("[" + arr[i][j] + ",");
                } else if (j == arr[i].length - 1) {
                    System.out.print(arr[i][j] + "]");
                } else {
                    System.out.print(arr[i][j] + ",");
                }
            }

        }
    }
}

求二维数组的和:

public class Cherris1 {
    public static void main(String[] args) {
        int[][] arr = {{1, 2}, {3, 5}, {7, 8, 4}, {9, 2, 4}};
        int sum = 0;
        for (int i = 0; i <= arr.length - 1; i++) {
            for (int j = 0; j <= arr[i].length - 1; j++) {
                sum = sum + arr[i][j];
            }
        }
        System.out.println("和:"+sum);
    }
}
举报

相关推荐

0 条评论