java 数组的复制

java数组的复制分为数组地址的复制和值的复制

地址的复制:

int []arrA={11,22,33,44};
        //创建一个数组
        int [] arrB=new int[5];
        System.out.println("拷贝地址(引用)之前");
        System.out.println("arrA="+arrA);
        System.out.println("arrB="+arrB);
        
        
        //引用的拷贝
        arrB=arrA;
        System.out.println("拷贝地址(引用)之后 ");
        System.out.println("arrA="+arrA);
        System.out.println("arrB="+arrB);

 

 

值的复制:

int [] arrA={11,22,33,44};
        int [] arrB=new int[5];
        //复制
        /*arrB[0]=arrA[0];
        arrB[1]=arrA[1];
        arrB[2]=arrA[2];
        arrB[3]=arrA[3];*/
        System.out.println("赋值之前");
        for(int i=0;i<arrB.length;i++){
            System.out.print(arrB[i]+"\t");
        }
        //两个数组的长度的最小值
        int length=Math.min(arrA.length, arrB.length);
        for(int i=0;i<length;i++){
            arrB[i]=arrA[i];
        }
        //遍历arrB数组
        System.out.println("\n赋值之后");
        for(int i=0;i<arrB.length;i++){
            System.out.print(arrB[i]+"\t");
        }

 

 

System类中的 arraycopy(…)方法 

        int [] arrA={11,22,33,44};//源数组
        int [] arrB=new int[5];//目标数组
        
        System.out.println("数组拷贝之前");
        for(int num:arrB){
            System.out.print(num+"\t");
        }
        //拷贝
        System.arraycopy(arrA, 0, arrB, 1, 2);  //从arrA从下标0开始拷贝,拷贝给arrB从下标1开始,拷贝的长度为2 arrB的元素为[0,11,22,0,0]
        
        System.out.println("\n数组拷贝之后");
        for(int num:arrB){
            System.out.print(num+"\t");
        }            

 

 

posted @ 2019-06-15 10:49  鳄鱼菌  阅读(1502)  评论(0编辑  收藏  举报