System提供了一个静态方法arraycopy(),用来实现数组之间的复制。其函数原型是:
public static void arraycopy (Object src, int srcPos, Object dest, int destPos, int length)
src:源数组;
srcPos:源数组要复制的起始位置;
dest:目的数组;
destPos:目的数组放置的起始位置;
length:复制的长度。
注意:src and dest都必须是同类型或者可以进行转换类型的数组.
Example:
有两个数组,array1、array2 实现将array2中的数据复制给array1
public class test_1 {
public static void main(String[] args) {
int[] array1 = {1,2,3,4,5};
int[] array2 = {6,7,8,9,10};
System.arraycopy(array2, 0, array1, 0, 5);
for (int i = 0; i < 5; i ++)
System.out.println(array1[i]);
}
}
Output:
6
7
8
9
10
arraycopy 方法也可以实现自己复制自己的数据
public class test_1 {
public static void main(String[] args) {
int[] array1 = {1,2,3,4,5};
System.arraycopy(array1, 0, array1, 3, 2);
for (int i = 0; i < 5; i ++)
System.out.println(array1[i]);
}
}
Output:
1
2
3
1
2
实现过程:先生成一个长度为length的临时数组,将array1数组中srcPos到srcPos+length-1之间的数据拷贝到临时数组中,再执行System.arraycopy(临时数组, 0, array1, 3, 2)。