目前在Java中数据拷贝提供了如下方式:
clone
System.arraycopy
Arrays.copyOf
Arrays.copyOfRange
下面分别介绍他们的用法
1、clone 方法
clone方法是从Object类继承过来的,基本数据类型(int ,boolean,char,byte,short,float ,double,long)都可以直接使用clone方法进行克隆,注意String类型是因为其值不可变所以才可以使用。
int 类型示例
int[] a1 = {1, 3};
int[] a2 = a1.clone();
a1[0] = 666;
System.out.println(Arrays.toString(a1)); //[666, 3]
System.out.println(Arrays.toString(a2)); //[1, 3]
String类型示例
String[] a1 = {“a1”, “a2”};
String[] a2 = a1.clone();
a1[0] = “b1”; //更改a1数组中元素的值
System.out.println(Arrays.toString(a1)); //[b1, a2]
System.out.println(Arrays.toString(a2)); //[a1, a2]
2、System.arraycopy
System.arraycopy方法是一个本地的方法,源码里定义如下:
public static native void arraycopy(Object src, int srcPos, Object dest, int desPos, i