1、利用for循环进行数组的拷贝。
代码如下:
public static int[] copyArray(int[] array) {
int[] ret = new int[array.length];
for (int i = 0; i < array.length; i++) {
ret[i] = array[i];
}
return ret;
}
public static void main(String[] args) {
int[] array = {1,2,3,4,5};
int[] ret = copyArray(array);
System.out.println(Arrays.toString(ret));
}
2、System.arraycopy
具体使用方式 : System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
Obeject src :源数组 ;srcPos :源数组开始拷贝的下标 ;dest :目的数组 ;length :要拷贝的大小。
示例:
public static void main(String[] args) {
int[] array = {1,2,3,4,5};
int[] dest = new int[array.length];
System.arraycopy(array,0,dest,0,array.length);
System.out.println(Arrays.toString(dest));
该方法与for相比速度更快。
3、Arrays.copyOf
使用方法:Arrays.copyOf(int[ ] original, int newLength).用int类型举例。
int[ ] original:源数组 ; int newLength :新数组的大小
示例:
public static void main(String[] args) {
int[] array = {1,2,3,4,5};
int[] ret = Arrays.copyOf(array,array.length);
System.out.println(Arrays.toString(ret));
}
此方法底层调用的依然是System.arraycopy
4、array.clone
示例:
public static void main(String[] args) {
int[] array = {1,2,3,4,5};
int[] ret2 = array.clone();
System.out.println(Arrays.toString(ret2));
}
实际上是Object方法。
以上四种拷贝方式全部都是浅拷贝。