0


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

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

一、二维数组的定义

定义:对于二维数组的理解,我们可以看成是一维数组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.运行截图

标签: java

本文转载自: https://blog.csdn.net/m0_65100923/article/details/125106977
版权归原作者 敲代码的小王! 所有, 如有侵权,请联系我们删除。

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

还没有评论