在我们原来的时候,我们想要定义5个整型的变量就要写:
Int a = 0;
Int b; = 0
Int c = 0;
Int d = 0;
Int e = 0;
要是50个呢?我们还这样写吗?显然是不现实的,因为这样太麻烦了,会大量的浪费我们的时间,为了解决这个问题,我们引入了数组的概念。
数组的概念和一维数组定义方式以及初始化。
数组:拥有相同数据类型的一组数据的集合。
定义方式:
1. 数据类型【】 数组名 = new 数据类型【数组长度】;
2. 数据类型 数组名【】 = new 数据类型【数组长度】;
3. 数据类型【】 数组名 = {数组内的具体元素};(元素之间用逗号分隔)。
4. 数据类型 数组名【】 = {数组内的具体元素};(元素之间用逗号分隔)。
5. 数据类型【】 数组名 = new数据类型【】{数组内的具体元素};(元素之间用逗号分隔)。
6. 数据类型 数组名【】 = new数据类型【】{数组内的具体元素};(元素之间用逗号分隔)。
大家别看有这么多钟的定义方式,其实说白了就2种,一种是带初始化的,一种是不带初始化的,然后就是括号的位置在变了。
初始化方式有两种:
第一种可以在数组定义的时候就初始化。
第二种是用循环来给数组初始化。
例:
int[] a = new int[5];
for(int i = 0 ; i<5;i++)
{
a[i]= i;
}
这样数组a中的元素就被初始化了。
数组的输出
输出数组我们也有两种方式:
第一种就是和初始化一样的用循环来完成。
下面我来讲一下第二种:
我们接着上面哪个程序往下写;我们要输出上面的哪个数组a:
String aString = Arrays.toString(a);
System.out.print(aString);
此时会输出【0,1,2,3,4】;
这里用到了一个方法Array.toString()这个方法的作用是将数组中的元素全部转换成字符串,然后作为字符串返回。所以会输出数组的元素。
数组的有关问题
1.我们在定义数组的时候用到了关键字new,说明数组是一个对象,而并非是原生数据类型。
2.数组在内存中的存储是一组连续的内存空间,所以数组元素是可以用索引来引用的,索引的大小是从0到数组长度减一。第n个数组元素:数组名【n-1】
3.Java 中的每个数组都有一个名为length 的属性,表示数组的长度。length 属性是public final int 的。数组长度一旦确定,就不能改变大小。凡是想要改变数组大小的操作系统都会报错。
4.数组名代表的是一个地址,数组的首地址,也是第一个元素的地址。
关于一维数组就先说这些,下面我们说一下二维数组以及多维数组。
二维·数组
二维数组:二维数组是一种平面的二维结构,本质上是数组的数组。二维数组的定义方
式:数据类型[][] 数组名 = new 数据类型[行数][列数];二维数组的定义方式并非只有这一种,他和一维数组的定义方式大体上一样,你可以自己去想一下,这里我就不说了。
为什么说二维数组是数组的数组呢?因为二维数组的每一行都可以看成是一个一维数组。
所以数据类型【索引】并非是一个元素,而是对应行的首地址。
二维数组的初始化和一维数组的差不多,我简单的写一下:
Int[][] a = new int[2][3];
For(int I = 0 ; i<a.length;i++)
{
For(intj = 0;a[i].length)
{
a[i][j]= 2;
}
}
这样数组中的每个元素都被赋值为2,这个程序就算二维数组是不规则的也能初始化(二维数组可以是不规则的,也就是每一行的元素个数不一定相同)。
关于多维数组大家可以根据一维数组和二维数组推一下,就是:
数据类型【】【】。。。数组名 = new 数据类型【长度】【长度】。。。。
初始化和输出时是几维的数组就写几层循环。