美文网首页程序员
Java拷贝数组的三种方法

Java拷贝数组的三种方法

作者: 天香阁主 | 来源:发表于2018-09-05 20:40 被阅读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 的比较结果很容易看出这是两个数组,是完全独立的,也就是深拷贝;第三种方法跟第二种方法结果是完全一样的,但是第三种方法更加灵活,是可以指定拷贝的数组的起始位置及终止位置的,而第二种方法就做不到这一点。

    相关文章

      网友评论

        本文标题:Java拷贝数组的三种方法

        本文链接:https://www.haomeiwen.com/subject/spezwftx.html