一、数组的基本概念
-
数组:就是若干个相同数据类型的元素按照一定顺序排列的集合。
特点:
a.数组是相同数据类型元素的集合。
b.数组中的个元素是有先后顺序的,它们按照这个先后顺序连续存放在一起的。
c.数组元素用整个数组的名字和它自己在数组中的顺序位置来表示,例如demo[0]表示名字为demo的数组中的第一个元素。
二、一维数组
-
一维数组说明:最简单的数组。
-
一维数组定义:
定义格式:数据类型[] 数组名;//声明一维数组 数组名 = new 数据类型[个数] ;//给一维数组分配内存
数据类型既可以是基本数据类型也可以是引用类型。
与C/C++语言不同,Java语言在数组的定义中,并不为数组元素分配内存。但是必须分配内存之后才可以使用。int[] demo;//定义了一个名为demo的整型数组 demo = new int[10];//demo数组中包含了10个整型数据元素,并且为这是个数据元素分配空间。
其实,Java语言的数组声明也可以写成:
数据类型[] 数组名 = new 数据类型[个数];
例如:
int[] demo = new int[10];
其中,Java数组的定义,在等号左边的int[] demo相当于定义了一个特殊变量demo,其中demo的数据类型是一个对int型数组对象的引用,demo就是一个数组的引用变量,其引用的数组元素个数补丁,但是等号右边,new int[10]就是在堆上创建一个具有10个int类型变量的数组变量。
其中,用户也可以改变demo的值,让他指向另外一个数组对象的,或者不指向任何数组对象,即将常量
null
赋值给demo即可。但是,如果我现在让int[] demo = new int[10];
指向null
,即int[] demo = null
,那么在堆上的那10个int类型变量数组对象就会成为一个无法引用的垃圾,此时只能等到垃圾回收器来进行释放。数组在使用new运算符分配内存空间的额时候,数组中的每一个元素都会赋一个默认值,整数为0,浮点数为0.0,
boolean
型为false
,引用型为null
。 -
一维数组元素的访问
数组元素的访问方法:数组名[下标]; -
一维数组的初始化
初始化格式:数据类型[] 数组名 = {初值0,初值1,...,初值n}
虽然这里数组定义没有定义格式,但是由于花括号中初值有n个,所以数组长度也会定为n个。
-
foreach
语句与数组
自从JDK5开始引进一种新的for循环,它不需要用下标即可遍历整个数组,他就是----foreach
语句。
foreach
语句只需要提供三个数据:元素类型,循环变量名字,用于从中检索元素的数组。
语法:for(type element:array){ //循环体 }
该功能就是每次从数组array中取出一个元素,自动复制给
element
变量,其中element
的类型必须与数组array元素的类型相同。
例如:int[] demo = {1,2,3,4,5}; for(int i:demo){ System.out.println(i); }
三、多维数组
-
二维数组
二维数组与一位数组类似。数据类型[][] 数组名; 数组名 = new 数据类型[行数][列数];
或者
数据类型[][] 数组名 = new 数据类型[行数][列数];
或者
数据类型[] 数组名; 数组名 = new 数据类型[行数][]; 数组名[0] = new int[列数];
-
三维以上的多维数组
使用多维数组,其与二维数组类似,且数组维数越高,其复杂度也就越高。