java—数组学习补充(韩顺平)(二维数组)

目录

二维数组

二维数组输出

输出二维数组一定要会!

注意事项

动态、静态初始化

        test1.静态初始化

(默认初始化)

        test2.动态初始化


二维数组

本质:二维数组是一维数组组成的,而一维数组中是由n个元素组成

定义一个二维数组.

        int arr[][] = {{},{},{}};
        System.out.println("二维数组长度为" + arr.length);

再将里面输入数值

二维数组输出

        /*
        请用二维数组输出如下图形
        0 0 0 0 0 0
        0 0 1 0 0 0
        0 2 0 3 0 0
        0 0 0 0 0 0
        */
      //第一种方式
      int arr[][] = {{0,0,0,0,0,0},{0,0,1,0,0,0},
                {0, 2,0, 3,0,0},{0,0,0,0,0,0}};
      //第二种方式
      //  int arr[][] = new int[4][6];
      //  arr[1][2] = 1;
      //  arr[2][1] = 2;
      //   arr[2][3] = 3;
        System.out.println(arr.length);
        //打印二维数组
        for(int i = 0;i < arr.length; i++) {
            //arr[i]获得每个一维数组的长度
            for(int j = 0; j < arr[i].length; j++) {
                System.out.print(arr[i][j]+" ");
            }
            System.out.println(" ");
        }

 

 第一种方式采用的是静态初始化,输入固定的值,然后输出。

 第二种方式采用的是动态初始化(下面会说明)。

输出二维数组一定要会!

 输出分析:第一个for,变量 i 与二维数组的长度(长度为4)进行循环。

                   第二个for,与二维数组中的一维数组(长度为6)进行循环。


注意事项

        // 如果我们要访问第 (i+1)个一维数组的第 j+1 个值 arr[i][j];
        System.out.println("二维数组中的第2个元素中的第3个数="+arr[1][2]);

 


动态、静态初始化

声明->开辟空间

        test1.静态初始化

//动态初始化
        int arr[][];//声明
        arr = new int[2][3];//再开空间
        arr[1][1] = 8;
        for(int i = 0; i < arr.length; i++) {
            for(int j = 0; j < arr[i].length; j++) {
                System.out.print(arr[i][j]+" ");
            }
            System.out.println();
        }

给二维数组中的某个地址设置变量,未设置的则默认为零

默认初始化)

byte为0,int为0,float为0.0,double为0.0,boolearn为false,char为0)

        test2.动态初始化

//动态初始化_2
        //写一个1,22,333,4444,的程序,用二维数组
        int arr[][] = new int[4][];
        //只有4个一维数组,但是数组的空间没有开辟
        //开始循环
        for(int i = 0; i < arr.length; i++) {
            //给每一个数组开辟空间。如果没有开辟空间,那就是null
            //arr[0] = new int[1] 二维数组下标为0的一维数组有一个空间
            //arr[1] = new int[2] 二维数组下标为1的一维数组有两个空间
             arr[i] =new int [i+1];
            for (int j = 0; j < arr[i].length; j++) {
            //j < arr[1] 长度为2,循环两次
                arr[i][j] = i + 1;
            }
        }
        for (int i = 0; i < arr.length; i++) {
            for(int j = 0; j < arr[i].length; j++) {
                System.out.print(arr[i][j]+" ");
            }
            System.out.println();
        }

我的理解:声明了二维数组,但数组空间未开辟。利用for循环

        i = 0,1,2,3

        第一次循环给第一行(下标为0)一个数,数组空间是[i + 1]

        第二次循环给第二行(下标为1)两个数,数组空间是[i + 1]

        第三次循环给第三行(下标为2)三个数,数组空间是[i + 2]

        .....,嵌套的for循环,给每个开辟的空间遍历数值。

        最后输出出来。

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值