您好,登录后才能下订单哦!
这篇文章主要介绍“JAVA多维数组的用法”,在日常操作中,相信很多人在JAVA多维数组的用法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JAVA多维数组的用法”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
多维数组,指二维以及二维以上的数组。二维数组有两个层次,三维数组有三个层次,依次类推。每个层次对应一个下标。
在学校里,由于一个班的人数不多,所以按照顺序编号即可,当人数增多时,例如对于学校里的人,在编号时就要增加层次,例如XX班XX号。在部队中也是这样,XX师XX团XX营XX连XX排XX班,这里的层次就比较深了。为了管理数据的方便,一般要加深管理的层次,这就是多维数组的由来。
在实际使用中,为了使结构清晰,一般对于复杂的数据都是用多维数组。
关于多维数组的理解,最终的是理解数组的数组这个概念,因为数组本身就是一种复合数据类型,所以数组也可以作为数组元素存在。这样二维数组就可以理解成内部每个元素都是一维数组类型的一个一维数组。三维数组可以理解成一个一维数组,内部的每个元素都是二维数组。无论在逻辑上还是语法上都支持“数组的数组”这种理解方式。
通常情况下,一般用二维数组的***维代表行,第二维代表列,这种逻辑结构和现实中的结构一致。和一维数组类似,因为多维数组有多个下标,那么引用数组中的元素时,需要指定多个下标。
一、多维数组语法
下面以二维数组为例,来介绍多维数组的语法。
1、维数组声明
多维数组的声明:
数据类型[][] 数组名称;
数据类型[] 数组名称[];
数据类型 数组名称[][];
以上三种语法在声明二维数组时的功能是等价的。同理,声明三维数组时需要三对中括号,中括号的位置可以在数据类型的后面,也可以在数组名称的后面,其它的依次类推。
例如:
int[][] map; char c[][];
和一维数组一样,数组声明以后在内存中没有分配具体的存储空间,也没有设定数组的长度。
2 、多维数组初始化
和一维数组一样,多维数组的初始化也可以分为静态初始化(整体赋值)和动态初始化两种,其语法格式如下。
(1)静态初始化
以二维数组的静态初始化为例,来说明多维数组静态初始化的语法格式。示例代码如下:
int[][] m = { {1,2,3}, {2,3,4} };
在二维数组静态初始化时,也必须和数组的声明写在一起。数值书写时,使用两个大括号嵌套实现,在最里层的大括号内部书写数字的值。数值和数值之间使用逗号分隔,内部的大括号之间也使用逗号分隔。
由该语法可以看出,内部的大括号其实就是一个一维数组的静态初始化,二维数组只是把多个一维数组的静态初始化组合起来。
同理,三维数组的静态初始化语法格式如下:
int[][][] b = { { {1,2,3}, {1,2,3} }, { {3,4,1}, {2,3,4} } };
说明:这里只是演示语法格式,数值本身没有意义。
(2) 动态初始化
二维数组动态初始化的语法格式:
数据类型[][] 数组名称 = new 数据类型[***维的长度][第二维的长度];
数据类型[][] 数组名称;
数组名称 = new 数据类型[***维的长度][第二维的长度];
示例代码:
byte[][] b = new byte[2][3]; int m[][]; m = new int[4][4];
和一维数组一样,动态初始化可以和数组的声明分开,动态初始化只指定数组的长度,数组中每个元素的初始化是数组声明时数据类型的默认值。例如上面初始化了长度为2X3的数组b,和4X4的数组m。
使用这种方法,初始化出的第二维的长度都是相同的,如果需要初始化第二维长度不一样的二维数组,则可以使用如下的格式:
int n[][]; n = new int[2][]; //只初始化***维的长度 //分别初始化后续的元素 n[0] = new int[4]; n[1] = new int[3];
这里的语法就体现了数组的数组概念,在初始化***维的长度时,其实就是把数组n看成了一个一维数组,初始化其长度为2,则数组n中包含的2个元素分别是n[0]和n[1],而这两个元素分别是一个一维数组。后面使用一维数组动态初始化的语法分别初始化n[0]和n[1]。
3、用数组元素
对于二维数组来说,由于其有两个下标,所以引用数组元素值的格式为:
数组名称[***维下标][第二维下标]
该表达式的类型和声明数组时的数据类型相同。例如引用二维数组m中的元素时,使用m[0][0]引用数组中***维下标是0,第二维下标也是0的元素。这里***维下标的区间是0到***维的长度减1,第二维下标的区间是0到第二维的长度减1。
4、获得数组长度
对于多维数组来说,也可以获得数组的长度。但是使用数组名.length获得的是数组***维的长度。如果需要获得二维数组中总的元素个数,可以使用如下代码:
int[][] m = { {1,2,3,1}, {1,3}, {3,4,2} }; int sum = 0; for(int i = 0;i < m.length;i++){ //循环***维下标 sum += m[i].length; //第二维的长度相加 }
在该代码中,m.length代表m数组***维的长度,内部的m[i]指每个一维数组元素,m[i].length是m[i]数组的长度,把这些长度相加就是数组m中总的元素个数。
到此,关于“JAVA多维数组的用法”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。