一维数组
定义
数组是由一组具有相同数据类型的数据组成有序集合。
{1,2,3,4,5,6}
数组的元素:即指数组内每一个组成部分,例如{1,2,3,4,5,6}的元素为:1,2,3,4,5,6这六个元素。
数组的长度:即指数组内元素的个数,可以用length方法求解。例如{1,2,3,4,5,6}的元素个数为6,那么数组长度就为6,用length方法求解为:数组名.length=6;
元素的下标:表示元素在数组中的位置,从0开始计数。例如上例,元素1的下标为0;元素2的下标为1.....元素6 的下标为数组长度减1.
下标越界异常:
int []as={1,2,3,4,5,6};
as[6]=7;
/**
* Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 6
at cn.lhb.java.arrayText.main(arrayText.java:11)
*/
数组as只有6个元素,下标分别为:0,1,2,3,4,5。as[6]=7,给数组下标为6的位置赋值,超出了数组范围报错。
声明:
数组类型 [] 数组名
int [] as;
数组类型 数组名 []
int as [];
初始化:
1:静态初始化:
数组类型 [] 数组名={数据参数};
数组类型 数组名 []={数据参数};
int []bs={1,2,3,4};int as []={1,2,3,4};
特点:操作简单,不够灵活。
2:动态初始化1:
数组类型 [] 数组名=new 数组类型[数组长度];
数组类型 [] 数组名=new 数组类型[数组长度];
数组类型 数组名[]=new 数组类型[数组长度];
int []as=new int[5];int bs[]=new int[5];
特点:操作复杂,较为灵活。
3:动态初始化2:
数组类型 [] 数组名=new 数组类型[]{元素};
数组类型 [] 数组名=new 数组类型[]{元素};
数组类型 数组名[]=new 数组类型[]{元素};
int []as=new int[]{1,2,3,4,5};
int bs[]=new int[]{1,2,3,4,5};
数组赋值:
数组赋值通过元素下标一一对应赋值。 int []as=new int[2];
as[0]=32;
as[1]=25;
数组的遍历:
数组的遍历是指将数组内的元素都调用一次。
int []as=new int[2];
for(int i=0;i<as.length;i++){
}
因为数组的遍历是下标0至下标数组长度减1都会遍历一次,所以遍历可以用来给数组赋值,复制数组以及输出数组等等作用。
例如:
//数组as有100个元素,其中的元素为101-200的有序排列。对as赋值就可以用遍历的思想:
int []as=new int[100];
for(int i=0;i<as.length;i++){
as[i]=100+i;
}
//数组as有10个元素,数组bs也有10个元素,将数组as赋值给数组bs:
int []as={1,2,3,4,5,6,7,8,9,10};
int []bs=new int[10];
for(int i=0;i<as.length;i++){
as[i]=bs[i];
}
//数组as有10个元素,将数组as分别输出在控制台:
int []as={1,2,3,4,5,6,7,8,9,10};
for(int i=0;i<as.length;i++){
System.out.print(as[i]);
}
数组的复制:
1遍历复制:
详见数组的遍历
System.arraycopy(src, srcPos, dest, destPos, length);
数组as有10个元素,数组bs也有10个元素,将数组as赋值给数组bs:
<h3>2调用方法复制:</h3>在JVAV系统中有一个复制数组的方法:
src
- 源数组。
srcPos
- 源数组中的起始位置。
dest
- 目标数组。
destPos
- 目标数据中的起始位置。
length
- 要复制的数组元素的数量。
int []as={1,2,3,4,5,6,7,8,9,10};//目标数组as
int[]bs=new int[5];//接受数组bs
//将as下标为1的元素复制给bs下标为0的元素,并依次开始复制,一共复制4个元素
System.arraycopy(as,1, bs, 0, 4);
//遍历输出
for (int i=0;i<bs.length;i++){
System.out.print(bs[i]+"\t");
}
多维数组
在JAVA中,数组的元素可以是任何已存在的类型(包括数组)。因此,一个一维数组又可以作为另一个一维数组的元素。这里我们介绍下多维数组中的二维数组。
声明:
数组类型 [][] 数组名
int [3][4] as;
数组类型 数组名 [][]
int as [3][4];
其意义是:as引用了一个其元素类型为int[4]的数组,a的长度是3。
或者说,数组as有3个元素,每个元素都是一个长度为4的一维整型数组。
二维数组的初始化
类型名[][] 数组名={{初值n1, …初值nm},{…},…};
例如:
int as [][]={
{1,2,3},
{3,4,5},
{5,6,7},
{7,8,9}
};
as[i]是数组a中第i个一维数组的数组名;而 as[i][j]是数组a中第i个一维数组中的第j个元素的变量名;