• Java 数组之二维数组


    1、二维数组:数组的每个元素,又是一个数组

    2、本质:还是一个一维数组,只不过数组的每个元素,都是另一个一维数组的地址

    3、定义格式:

      1、int[][] arr = new int[3][5];创建了一个二维数组,有3个元素,每个元素都是一个一维数组的地址,每个一维数组中,有5个元素,每个元素都是一个int类型的数据,图示:

    2、int[][] arr = new int[3][];创建了一个二维数组,有三个元素,每个元素都是一个一维数组的地址,每个一维数组中有多少个元素,不知道,所以一维数组没有办法创建。后期可以随意创建一维数组,给二维数组的元素赋值。

      3、int[][] arr = {{}, {1}, {1,2}, {3,4,5,6,7}, null};相当于定义了一个二维数组,有5个元素,每个元素都是一个一维数组,每个元素的长度、数据都不相同。

     

    class Test{
        public static void main(String[] args) {
            int[][] arr = new int[3][5];
            System.out.println(arr);//[[I@15db9742
            System.out.println(arr.length);//3
            System.out.println(arr[0]);//[I@...
            System.out.println(arr[1]);//[I@...
            System.out.println(arr[0].length);//5
            System.out.println(arr[0][0]);//0
            System.out.println("---------------------------");
    
            int[][] arr2 = new int[3][];
            System.out.println(arr2);//[[I@...
            System.out.println(arr2.length);//3
            System.out.println(arr2[0]);//null
            System.out.println(arr2[1]);
            //System.out.println(arr2[0].length);//空指针异常
            int[] arrOne = {3, 4, 5};
            arr2[0] = arrOne;
            System.out.println(arr2[0] + "..." + arrOne);
            System.out.println(arr2[0].length);//3
            System.out.println(arr2[0][0]);//3
    
            int[] arrOne2 = {6,7,8,9,11,12,13};
            arr2[1] = arrOne2;
            System.out.println(arr2[1][3]);//9
    
            System.out.println("------------------------------------");
            int[][] arr3 = {{}, {1}, {1,2}, {3,4,5,6,7}, null};
            System.out.println(arr3);//[[I@....
            System.out.println(arr3.length);//5
            System.out.println(arr3[0]);//[I@...
            System.out.println(arr3[0].length);//0
            //System.out.println(arr3[0][0]);//数组索引越界异常
            System.out.println(arr3[4]);//null
            System.out.println(arr3[4].length);//空指针异常
    
        }
    }
    二维数组

     

    二维数组的遍历

    1、二维数组是:数组嵌套了数组,遍历的时候,使用循环嵌套循环。

    2、外层循环中,获取到所有的一维数组,内层循环中,遍历每个一维数组。

    class Test2 {
        public static void main(String[] args) {
            int[][] arr = {{}, {1}, {1,2}, {3,4,5,6,7}, null};
            //定义循环,获取所有的一维数组
            for (int i = 0; i < arr.length; i++) {
                if ( arr[i] != null) {//如果一维数组不为null,才遍历
                    //定义循环,遍历一维数组arr[i]
                    for ( int j = 0; j < arr[i].length; j++) {
                        System.out.print(arr[i][j] + "  ");
                    }
                    //一维数组的所有元素打印完成之后,加一个换行
                    System.out.println();
                } else {//如果一维数组为null,就打印字符串null
                    System.out.println("null");
                }
            }
        }
    }
    二维数组的遍历

     

  • 相关阅读:
    WPF 实现窗体拖动
    CAP带你轻松玩转ASP.NETCore消息队列
    ASP.NET Core开发-获取所有注入(DI)服务
    k8s实战为aspnetcore.webapi微服务注入配置信息
    详解docker实战之搭建私有镜像仓库
    自己动手破解Z.EntityFramework.Extensions 4.0.11.0的方法
    可以获取随机图片的API收集 必应 等
    一键发布部署vs插件[AntDeploy],让net开发者更幸福
    比ngx_http_substitutions_filter_module 更强大的替换模块sregex的replace-filter-nginx-module
    编译nginx的源码安装subs_filter模块
  • 原文地址:https://www.cnblogs.com/xfdhh/p/11179644.html
Copyright © 2020-2023  润新知