数组学习笔记1(二维数组)

二维数组的使用

理解

对于二维数组,我们可以看为一对一维数组array1又作为另一个一位数组array2的存在,从数组的底层机制来看,并不存在多维数组

使用

声明和初始化

对比一维数组
一维:int[] arr = new int[]{1,2,3}(静态)
     int[] arr = new int[3];(动态)
           arr[0] = 1;
           arr[1] = 2;
           arr[2] = 3;
二维:int [][] arr2 = new int[][]{{1,2,3},{4,5,6}{789}};(静态)
     int [] arr2 []  = new int[][]{{1,2,3},{4,5,6}{789}};(静态)
     int [][] arr2 = new int[3][3];(半动态)
     int [][] arr2 = new int[3][];(全动态①) 

3*3二维数组模型

123
456
789

如何调用二维数组

初始化数组(静态调用)
int[]arr1 = new int [][]{{1,2,3},{4,5,6},{7,8,9}} 
输出结果
System.out.println("arr1[0][1]")

运行截图
运行截图

初始化数组(动态调用)
int [][]arr2 = new int[3][];
arr4[1] = new int[4];
输出结果
System.out.println("arr4[1][0]")

运行截图
在这里插入图片描述
由于只是为数组设置了列的个数,没有赋值,所以还是都是零的状态

获取数组的长度

初始化数组
int[][]arr3 = new int[][]{{1,2,3},{4,5,6},{7,8,9}};
获取长度
System.out.println(arr3.length); 

运行截图
在这里插入图片描述
注意
其中数组的长度由于二维与三维在实际上都属于一维数组,长度只统计一个大括号里有几个小括号
在这里插入图片描述

遍历二维数组

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

运行结果
在这里插入图片描述

二维数组的默认初始化值

规定:二维数组分为内外两层元素
例:
int[][] arr = new int[2][2];
外层元素:arr[0],arr[1]等
内层元素:arr[0][0],arr[1][1]

个人理解为一个整行的代表外层元素
细看内在==(细化到哪一行哪一列)则为内层元素==
默认的初始化值只有在动态初始化数组时可见,静态时已经固定好无法窥见
代码举例:

public class ArrayTest3{
public static void main(String[]args){
int [][] arr5 = new int[4][3];
System.out.println(arr[0]);
System.out.println(arr[0][0]);

运行结果
在这里插入图片描述

总结
针对于下列初始化方式:
int [][] arr = new int[4][3];
他的外层元素:arr[0],arr[1];在没有赋值输出后值一般为内存地址值
内层元素:arr[0][0],arr[1][2];在没有赋值输出后值一般为0
针对另一种初始化方式:
int [][] arr = new int[4][];
外层元素:arr[0],arr[1]在没有赋值输出后值一般为null
内层元素:arr[0][0],arr[1][2]在没有赋值输出后会报错,错误原因为空指针

二维数组的内存解析

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

演示截图
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值