今天,我们将要谈到的是Java里的数组
数组是一种容器,它是一些相同类型元素的集合。我们可以用数组,去存储一些相同类型的数据,比如,整数,浮点数,字符,...事实上,数组甚至可以用来存储同一个类的多个对象。由此可见其功能的强大。
我们从最简单的数组开始。一维数组是一种线性的数据结构。在Java里面,定义一个一维数组的格式有三种:
1)、数据类型 []数组名=new 数据类型[数组长度]
2)、数据类型 []数组名={数据,...}
3)、数据类型 []数组名=new 数据类型[]{数据,...}
给出定义三个数组的代码如下:
int、char、String是数据类型,[]表示数组,abc是数组名。
对于一个数组,它只有一个属性length,即数组的长度。我们可以用 数组名.length去获取数组的长度。对于数组里某个位置的元素,我们可以用 数组名[下标]的方式去访问或者设置具体值。
二维数组较之一维数组有一定区别。定义一个二维数组的方式也有三种:
1)、数据类型 [][]数组名=new 数据类型[行][列]
2)、数据类型 [][]数组名={{数据,...},...}
3)、数据类型 [][]数组名=new 数据类型[][]{{数据,...},...}
给出三种定义方式的代码如下:
一维数组中的数据,它的内存是线性分配的。也就是说,一维数组内数据的内存是相连的。二维数组与一维数组不一样,二维数组是不是一种线性的数据结构,它是多个线性数据结构的组合。我们可以用 数组名.length去访问这个二维数组有多少行,用 数组名[行下标].length的方式,去访问这个二维数组某行有多少列。这里注意一下,对于第一种定义二维数组的方式,得到的是一个规则的二维数组。但如果你直接给二维数组赋初值的话,那么得到的不一定是一个规则的二维数组。如下:
其输出结果是:
因此,当你定义一个二维数组的时候,你必须要更关注数组越界的问题,以防报错。
除此之外,注意对于一个二维数组a,加入你去访问a[行],那么输出的将是该行的首地址。因此,当你要对二维数组某个位置的元素进行访问和赋值的时候,必须给定具体的行和列的值。
关于更高维度的数组这里就不一一列举了,有兴趣的可以深入探究一下。
个人关于数组的见解就这么多,主要是要灵活运用到我们的代码当中去,简化我们的程序。如果各位大神有什么可以补充的,欢迎评论,有什么问题,希望大家能大方指正出来。