1.简介
Java中拷贝数组笔者目前所知的就三种方法,今天就简单的做个记录。大家如果有什么更好的方法,麻烦留言评论。
2.代码
public class ArrayClone {
public static void main(String[] args) {
// The first method
int[] arrays1 = new int[]{1, 2, 3, 4};
int[] arrays2 = arrays1;
System.out.println(arrays1 == arrays2);
System.out.println(Arrays.toString(arrays1));
System.out.println(Arrays.toString(arrays2));
// The second method
int[] arrays3 = new int[]{1, 2, 3, 4};
int[] arrays4 = arrays3.clone();
System.out.println(arrays3 == arrays4);
System.out.println(Arrays.toString(arrays3));
System.out.println(Arrays.toString(arrays4));
// The third method
int[] arrays5 = new int[]{1, 2, 3, 4};
int[] arrays6 = Arrays.copyOf(arrays5, arrays5.length);
System.out.println(arrays5 == arrays6);
System.out.println(Arrays.toString(arrays5));
System.out.println(Arrays.toString(arrays6));
}
}
3.效果
输出结果4.结论
第一种方法是两个变量指向同一个数组,也就是说就是一个数组,俗称为浅拷贝;第二种方法是数组自带的克隆方法,从arrays3和arrays4 的比较结果很容易看出这是两个数组,是完全独立的,也就是深拷贝;第三种方法跟第二种方法结果是完全一样的,但是第三种方法更加灵活,是可以指定拷贝的数组的起始位置及终止位置的,而第二种方法就做不到这一点。
网友评论