14--数组(多维数组的使用)

二维数组概述

1.Java 语言里提供了支持多维数组的语法。
2. 如果说可以把一维数组当成几何中的线性图形, 那么二维数组就相当于是一个表格:
在这里插入图片描述
3. 对于二维数组的理解,我们可以看成是一维数组 array1又作为另一个一维数组array2的元素而存 在。其实,从数组底层的运行机制来看,其实没 有多维数组。

二维数组的定义

二维数组的动态定义格式1:
数据类型[ ][ ] 数组名称 = new 数据类型[行的个数][列的个数];
实例:
int[][] scores= new int[3][5];
可以使用二维表表示:
在这里插入图片描述

说明:
定义了名称为scores的二维数组。
二维数组中有3个一维数组。
每一个一维数组中有5个元素
一维数组的名称分别为scores[0], scores[1], scores[2] ,scores[3],scores[5].
如上图:行表示二维数组。索引值分别为0 ,1, 2
给第一个一维数组1索引位赋值为99写法是:scores[0][1]=99;
给第二个一维数组3索引位赋值为100写法是:scores[1][3]=100;
给第三个一维数组2索引位赋值为88写法是:scores[2][2]=88;在这里插入图片描述
二维数组的动态定义格式2:
int[][] scores = new int[3][];
说明:
二维数组中有3个一维数组。 每个一维数组都是默认初始化值null (注意:区别于格式1)
可以对这个三个一维数组分别进行初始化 :
scores[0]=new int[3];
scores[1]=new int[4];
scores[2]=new int[5];
在这里插入图片描述
注意: int[][] scores = new int[][3]; 写法错误,二维数组必须指定长度,一维可以不指定。
静态方式初始化二维数组:
int[][] scores= new int[][]{{99,100,98},{100,88,97,98},{100,100,88,77,98}}

int[][] scores= {{99,100,98},{100,88,97,98},{100,100,88,77,98}}
图示:
在这里插入图片描述

  1. 注意特殊写法情况:int[] x,y[]; x是一维数组,y是二维数组。
  2. Java中多维数组不必都是规则矩阵形式

二维数组内存图(这里篇幅有限,只是简单说明某一种情况)

代码1:int[][] scores = new int[3][];
在这里插入图片描述
代码2:
scores[0]=new int[3];
scores[1]=new int[4];
scores[2]=new int[5];

在这里插入图片描述
代码3:
scores[0][0]=100;
scores[1][2]=100;
scores[2][4]=100;

在这里插入图片描述
因为时间关系,这个小章节我没有写代码,只供大家理解,又因为篇幅限制,我仅仅画出了某一种内存结构图,如果需要代码赋值,给我留言吧
====================================================================================================
  自己也是最近才开始写文章,看到大家都分享自己的经验给别人。我也是受益者之一,做人不能只懂的索取而不去回馈,所以也将自己学习的知识分享给大家。我不能保证每个问题都讲的是对的,毕竟我也是个学习者。如果有地方写得不对或理解有误的,也希望大家给指出,我当非常感谢。编写过程也不易,也希望大家给个赞,关注下本人。这也能激励我继续分享。
  ====================================================================================================

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值