程序员

Java拷贝数组的三种方法

2018-09-05  本文已影响0人  天香阁主

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 的比较结果很容易看出这是两个数组,是完全独立的,也就是深拷贝;第三种方法跟第二种方法结果是完全一样的,但是第三种方法更加灵活,是可以指定拷贝的数组的起始位置及终止位置的,而第二种方法就做不到这一点。

上一篇下一篇

猜你喜欢

热点阅读