java 数组的复制

Posted eyjdbk

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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");
                    

 

技术图片

 

以上是关于java 数组的复制的主要内容,如果未能解决你的问题,请参考以下文章

这两个代码片段之间有区别吗?如果有,那又如何? [复制]

在 Java 中克隆 vs 复制数组? [复制]

什么是在 C++ 中获取总内核数量的跨平台代码片段? [复制]

VSCode自定义代码片段—— 数组的响应式方法

VSCode自定义代码片段10—— 数组的响应式方法

请问java中深度copy一个二维数组是啥意思?怎么用代码实现?