02. java学习补充 – 二维数组

02. java学习补充 – 二维数组



前言

Java中并没有真正的二维数组。
所谓二维数组其实是两个一维数组嵌套在一起实现的。


一、二维数组的声明

1. 动态声明

直接指定数组中的元素的个数

// 例子1:直接全部定义
int[][] arr1 = new int[2][3];

// 例子2:只定义外层
double[][] arr2 = new double[3][];

// 例子3:先定义外层,再分别定义内层
int[][] arr3 = new int[2][];
arr3[0] = new int[2];
arr3[1] = new int[5];

2. 静态声明

不直接指定数据元素个数,而是直接将具体的数据内容进行指定

// 例子:
String[][] arr = {{"aa","bb"},{"aa","cc","ff"}};
// 从这个例子可以看出,java二维数组内层元素的长度可以不同

二、数组的调用

1. 调用内层元素

数组名[外层元素下标][内层元素下标]

// 例子
int[][] arr = new int[3][4];

System.ot.println(arr[0][1]); // 0

2. 调用外层元素

数组名[外层元素下标]

// 例子
int[][] arr = new int[3][4];

System.out.println(arr[0]);	// 得到的是内层的地址

三、数组的长度

1. 外层长度

数组名.length

// 例子
int[][] arr = new int[][]{{1,2,3},{2},{1,2}};

System.out.println(arr.length);	// 3

2. 某一层长度

数组名[内层元素下标].length

// 例子
int[][] arr = {{1,2,3},{2},{1,2,3,4}};

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

四、遍历二维数组

可以使用嵌套循环,来完成对二维数组的遍历

// 例子1:for循环
int[][] arr = new int[][]{{1,2,3},{2},{1,2,3,4}};

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();
}
// 输出结果:
// 1	2	3	
// 2	
// 1	2	3	4	

// 例子2:增强for循环
for(int[] a : arr){
	for(int aa : a){
		System.out.print(aa + "\t");
    }
    System.out.println();
}
// 输出结果:
// 1	2	3	
// 2	
// 1	2	3	4

五、二维数组初始化的默认值

1. 动态初始化方式1:int[][] arr = new int[3][4]

外层元素:默认存储地址值和元素类型
内层元素:默认与一维数组不同类型的默认值相同

// 例子:
int[][] arr = new int[3][4];

System.out.println(arr[0]);
System.out.println(arr[1][2]);
// 输出结果:
// I@1b6d3586
// 0

2. 动态初始化方式2:int[][] arr = new int[3][]

外层元素:默认为null
内层元素:报空指针异常

// 例子:
int[][] arr = new int[3][];

System.out.println(arr[0]);
System.out.println(arr[1][2]);
// 输出结果:
// null
// java.lang.NullPointerException

六、二维数组内存解析

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值