有以下4种方法:
(1)可以使用循环完成数组间的复制;
(2)使用 Object 的 clone 方法,在数组中覆盖了 object 的 clone 方法,该方法的作用是得到数组对象的一个副本。
(3)使用 System 类中的静态方法 arraycopy,arraycopy 的语法如下:
arraycopy(sourceArray,srcpos,targetArray,tarpos,length);
sourceArray 为被拷贝的数组;
srcpos 为起始位置,第一个元素为 0;
targetArray 为目标数组;
tarpos 为复制到目标数组的起始位置;
length 为复制的长度。
(4)一个简单的赋值语句并不能完成数组复制工作,在 Java 中,可以使用赋值语句复制基本类型的变量却不能复制对象,如数组。将一个对象赋值给另一个对象,只会使两个对象指向相同的内存地址。
实例:
public class Demo13_2 {
public void output(String arrayName, int temp[]) {
int i;
for(i = 0; i < temp.length; i++){
System.out.println(arrayName + "[" + i +"] = " + temp[i]);
}
}
public static void main(String[] args){
int source[]={1,2};
int i;
String arrayName;
Demo13_2 a = new Demo13_2();//实例化a
//使用循环复制数组
int dest1[] = new int[2];
for(i = 0; i < source.length; i++){
dest1[i] = source[i];
}
arrayName = "dest1";
a.output(arrayName, dest1);
//使用clone方法
int dest2[]=(int[])source.clone();
arrayName = "dest2";
a.output(arrayName, dest2);
//使用System类中的静态方法arraycopy
int dest3[] = new int[2];
System.arraycopy(source, 0, dest3, 0, 2);
arrayName = "dest3";
a.output(arrayName, dest3);
}
}