java 数组二

到底什么是二维数组,它和一维数组有什么关系吗?
理解二维数组,首先要先理解一维数组是什么。一维数组是个容器,存储相同数据类型的容器。二维数组就是用来存储一维数组的数组,一维数组的存储数据类型是基本数据类型和引用数据类型,二维数组的存储数据类型是引用数据类型(一维数组是引用数据类型)。也就是:二维数组是存储一维数组的数组,二维数组里面的元素都是数组,二维数组来存储一维数组。

不仅如此两者的初始化也有不同
答:二维数组初始值为null;一维数组初始值为0。

概念介绍:
1.二维数组其实是一维数组的嵌套(每一行看做一个内层的一维数组)
2.二维数组本质上是以数组作为数组元素的数组,即“数组的数组”,
3.二维数组又称为矩阵,行列数相等的矩阵称为方阵。对称矩阵a[i][j] = a[j][i]。
定义格式
格式1:
数据类型[][] 数组名 = new 数据类型[m][n];
m:表示这个二维数组有多少个一维数组。
n:表示每一个一维数组的元素有多少个。
int[][] arr = new int[3][2]; 用的最多。
int[] [] arr=new int[3][]; //列可变换。行一定要写(分配内存)
格式2:
数据类型[][] 数组名 = new 数据类型[m][];
m:表示这个二维数组有多少个一维数组。
列数没有给出,可以动态的给。这一次是一个变化的列数。

对于不管是在创建一维数组还是二维数组都需要new一下,那这是为什么呢?
答:由于数组也是引用数据类型,所以需要 new ,数组开辟的是一段 连续的内存空间。

代码展示
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
代码展示
在这里插入图片描述
我在想给数组动态分配内存,或者是没动态分配内存,需不需要进行释放,然后,我就找到了一个理由?
答:Java的垃圾回收机制最为Java语言的一大特性,将Java堆空间内存的释放交给JVM自动处理,无须开发人员在程序中显示调用,从而避免了因为开发人员忘记释放内存而造成的内存溢出。
在这里插入图片描述
此处的代码展示在上边。这个例子就是属于动态进行内存分配。
在这里插入图片描述
代码展示
在这里插入图片描述
在这里插入图片描述
解决下标溢出,在第二列第三行再添加一个数字
在这里插入图片描述
在这里插入图片描述
对二维数组进行赋值
在这里插入图片描述
在这里插入图片描述
[4,2]->85多敲了一个s。
在这里插入图片描述
Array constants can only be used in initializers(数组常量只能在初始化器中使用)
在这里插入图片描述
在这里插入图片描述
那么什么时候赋值是正确的呢?
一维数组
方式1
int arr[] ;
arr=new int[3];
arr[0]=1;
arr[1]=2;
arr[3]=5;
方式2
int[] arr= {66,72,78};
int[] arr2=new int[] {87,82,98};

注意: 在边声明边赋值的时候不要再声明长度了 [] 中不要在写值了呦。
边声明边赋值的时候数组的长度就被确定了,不能在往数组里面添加数字了。

二维数组如何赋值呢?
方式1
int[][] arr = {{1,2,3},{2,3,4},{1,3,4}};
注意: 在边声明边赋值的时候不要再声明长度了 [] 中不要在写值了呦。
边声明边赋值的时候数组的长度就被确定了,不能在往数组里面添加数字了。

如果数组里的值不是这种连续的,不能用for循环赋值,需要一个一个的单独赋值。
number1[0][0]=120;
number1[0][1]=10;
number1[0][2]=132;
方式2
在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值