Java基础之二维数组的使用胎教级别教学(含练习打印输出“杨辉三角形”)

🎉默认自己无能,无疑是给失败制造机会!🎉

 

前言

  与牛客的相知相遇:

一次偶然的机会我接触到了牛客网,从那次我就发现牛客网好像是一个全能型的网站,里面有各种语言的练习题、算法题、大厂的面试题、还有求职等各项功能。从那以后我就开始了我的牛客之旅。

链接我就放在这了需要的伙伴们自取👉注册即可免费刷题

目录

一、二维数组的定义

二、二维数组的使用

1.二维数组的使用和初始化

2.如何调用数组指定位置的元素

3.如何获取数组的长度

4.如何遍历二维数组

5.数组元素的默认初始值

6.数组的内存解析

三、二维数组的练习之杨辉三角 

1.要求

2.代码实现

3.运行截图


一、二维数组的定义

定义:对于二维数组的理解,我们可以看成是一维数组array1有作为另一个数组array2的元素而存在。

二、二维数组的使用

1.二维数组的使用和初始化

int[][] arr = new int[][]{{1,1,1},{1,2},{1,2,3}};//二维数组的静态初始化

String[][] arr1 = new String[3][2];//二维数组的动态初始化

String[][] arr2 = new String[3][];
arr2[1] = new String[4];//这也是二维数组动态初始化的一种方法

2.如何调用数组指定位置的元素

 System.out.println(arr[0][0]);//输出第一行第一列的元素值
 System.out.println(arr1[1][1]);//输出第二行第二列的元素值

3.如何获取数组的长度

 System.out.println(arr1.length);//3
 System.out.println(arr1[0].length);//2
 System.out.println(arr[1].length);//2

4.如何遍历二维数组

 for (int i = 0; i < arr1.length; i++) {
            for (int j = 0; j < arr1[i].length; j++) {
                System.out.print(arr1[i][j]);

            }
        }

5.数组元素的默认初始值

规定:二维数组分为外层数组的元素,内层数组的元素。

int[][] arr = new int [4][3];

外层元素:arr[0],arr[1]等

内层元素:arr[0][0],arr[1][2]等

针对于初始化方式一:int[][] arr1 = new int[4][3];

        外层元素的初始化值为:地址值

        內层元素的初始化值为:与一维数组的情况相同

针对于初始化方式二:int[][] arr2 = new int[4][];

        外层元素的初始化值为:null

        內层元素的初始化值为:不能调用,否则报错

代码及运行情况如下:

System.out.println(arr1[2]);//地址值
System.out.println(arr1[2][1]);//0,具体情况与一维数组相同
System.out.println(arr2[2]);//null
System.out.println(arr2[3][2]);//报错

6.数组的内存解析

具体过程是先在栈里面给arr分配空间,new的对象都在堆空间,new出来的对象会有一个地址值并且将这个地址值赋给栈空间的arr,,arr通过这个地址值指向对空间中造好的数组,由于new出来的数组为int[4][]故堆空间中的内容为3个null,如果此时输出的话会得到如图结果,arr[0] = new int[3],又new一个数组并且生成一个新地址值指向arr[0],并且最初元素全为0,通过语句arr[0][1] = 5;为数组内的一个元素赋值,将原先的0给覆盖掉同理得另一个。

三、二维数组的练习之杨辉三角 

1.要求

通过代码实现杨辉三角形,三角形第一个元素和最后一个元素都是1,其他的各个元素都是其上一行元素和上一行的前一个元素之和。

2.代码实现

public static void main(String[] args) {
        //1、二维数组的声明和初始化
        int[][] yangHui = new int[10][];
        //2、给二位数组赋值
        yangHui[0] = new int[1];
        for (int i = 0; i < yangHui.length; i++) {
            //给每行的首元素赋值
            yangHui[i] = new int[i + 1];
            yangHui[i][0] = yangHui[i][i] = 1;
            if (i > 1) {
                for (int j = 1; j < yangHui[i].length - 1; j++) {
                    yangHui[i][j] = yangHui[i - 1][j - 1] + yangHui[i - 1][j];

                }
            }

        }


        //3、遍历二维数组
        for (int i = 0; i < yangHui.length; i++) {
            for (int j = 0; j < yangHui[i].length; j++) {
                System.out.print(yangHui[i][j] + "\t");
            }
            System.out.println();

        }
    }
}

3.运行截图

  • 22
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 32
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

敲代码的小王!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值