数组的初始化,数组的操作,复制
数组既有一维数组,也有多维数组。
1.一维数组的创建:
(1)先定义,后创建。
elementType[ ] arrayRefVar;
arrayRefVar=new elementType[arraySize];
(2)在定义数组的同时,创建数组。
elementType [ ] arrayRefVar=new elementType[arraySize];
注意:这种创建过程必须指定arraySize的大小。
数组的初始化:
在定义时对数组进行初始化:
float [ ] scores={1,2,3,4};
float [ ]scores =new [ ] {1,2,3,4};
注意:方括号中不能指定数组长度,因为元素个数是由花括号后面的内容决定的。
2.数组的操作
采用随机函数生成数组元素
函数:Math.random()
函数用法:
生成伪随机数,范围[0.0,1.0);
如果要生成1到100之间的数,表达式:Math.random()*100;
3.for -each循环
for-each也称为增强型for循环,for-each就是“for每一个"的意思,主要用于遍历集合类型,它不需要使用下标就可以顺序遍历整个集合。
for(元素类型t 变量 var :集合对象引用)
//处理每一个元素;
举个例子:
float scores[ ]={20,30,100};
for(float x:scores)
{
System.out.println(x); //逐个输出每个元素
}
4.数组复制
java中使用赋值语句x=y实现基本类型的复制。但是如果x,y是两个同类型的数组变量,x=y相当于让数组引用变量x和y指向同一个数组,要实现数组内容的复制,常见的形式有两种:
(1)使用for循环将数组的元素依次赋值,需要特别制定的是数组长度,避免数组越界错误。
public boolean copyArray(int [ ] src,int [ ] dest)
{
if(dest.length<src.length)
return flase;
for(int i=0;i<src.length;i++)
{
dest[i]=src[i];
}
return true;
}
其中,dest是目标数组,代码首先检查目标数组的长度,确保目标数组长度不比源数组长度小,然后,逐个复制源数组元素到目标数组中。
(2)使用System.arraycopy()方法,这是推荐使用的方式。
System类提供了一个静态方法arraycopy(),可以使用它来实现数组的复制,函数原型如下:
public static void copyarray(object src,int srcPos,object dest,int destPos,int length);
其中src代表源,dest代表目的.
注意:src和dest必须是同类型的或者类型兼容的数组。
int [ ] src={1,3,5,6,7,8};
int [ ] dest=new int [6];
Syste.arraycopy(stc,0,dest,0,src.length);
此外,函数arraycopy可以实现自己到自己的复制。例如:
int [ ] fun ={0,1,2,3,4,5,6};
system.arraycopy(fun,0,fun,3,,3);
结果为:{0,1,2,0,1,2,6};