【Java基础】二维数组

1.二维数组

数组是引用类型,数组中的元素可以是引用数据类型,因此在一维数组中每个元素都为一个一维数组,即为二维数组。相当于一个表格
image

2.初始化

(1)静态初始化

int[][] arr = new int[][]{{3,8,2},{2,7},{9,0,1,6}};

image
说明
第二个元素为arr[1] = {2,7},第二个元素中的第一个为arr[1][0] = 2
二维数组的长度为arr.length,第二个元素的长度为arr[1].length
特殊写法:声明两个数组 int[] x,y[];,x是一维数组,y是二维数组。

(2)动态初始化
① 第一种

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

image
二维数组中有3个元素,每个元素是一个一维数组,每个一维数组有2个元素。
一维数组的名称分别为:arr[0],arr[1],arr[2]
给第一个一维数组中的第二个元素赋值arr[0][1] = 78;
② 第二种

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

二维数组中有3个一维数组,每一个都是默认初始化为null,一维数组中的元素不能调用,否则报错。
分别进行3个一维数组的初始化

arr[0] = new int[3];
arr[1] = new int[2];
arr[3] = new int[4];

这种写法int[][] arr = new int[][3]是错误的。

3.二维数组的遍历

        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr[i].length; j++) {
                System.out.print(arr[i][j]+"\t");
            }
            System.out.println();
        }

4.内存解析

int[][] arr = new int[4][];
arr[1] = new int[]{1, 2, 3};
arr[2] = new int[4];
arr[2][1] = 5;

(1)先执行int[][] arr = new int[4][];
堆内存中开辟连续空间,一维数组为null

image

(2)执行arr[1] = new int[]{1, 2, 3};
image

(3)执行

arr[2] = new int[4];
arr[2][1] = 5;

image

posted @ 2022-08-22 17:33  植树chen  阅读(249)  评论(0编辑  收藏  举报