Java数组拷贝的五种方法

在Java中有多种方法可以拷贝一个数组,到另外一个数组。

1.循环拷贝

在循环拷贝方法中,只需要利用i,移动指针即可复制所有数组到arrayB中。

for(int i=0;i<arrayA.length;i++)
{
    arrayB[i] = arrayA[i];
}

2.clone

这种方法拷贝十分方便,仅仅需要声明一个数组变量,然后利用array.clone()即可拷贝到另外一个数组中。

int[] arrayB = arrayA.clone();

3.copyOf

(原始数组,拷贝长度)

Arrays.copyOf(arrayA,arrayA.legnth);

4.copyOfRange

(原始数组,开始位置,拷贝长度)

Arrays.copyOfRange(arrayA,0,arrayA);

5.arraycopy

(原始数组,原始数组开始位置,目标数组,目标数组开始位置,拷贝长度)

System.arraycopy(arrayA,0,arrayB,0,arrayA.length);

总代码:

import java.util.Arrays;

public class copyArray {
    public static void main(String[] args)
    {
        int[] arrayA = {2,4,6,7,10};
        int[] arrayB = new int[arrayA.length+1];
        copy(arrayA,arrayB);
    }

    public static void copy(int[] arrayA,int[] arrayB)
    {
        //第一种:循环拷贝
        for(int i=0;i<arrayA.length;i++)
        {
            arrayB[i] = arrayA[i];
        }

        System.out.println(Arrays.toString(arrayB));

        //浅拷贝
        //第二种:parameters:开始数组,起始复制位置;目的数组,目的复制位置;复制的长度。
        System.arraycopy(arrayA,0,arrayB,0,arrayA.length);
        System.out.println(Arrays.toString(arrayB));
        //浅拷贝
        //第三种:原始数组,拷贝长度;
        arrayB = Arrays.copyOf(arrayA,arrayA.length);
        System.out.println(Arrays.toString(arrayB));
        //第四种:
        arrayB = Arrays.copyOfRange(arrayA,0,arrayA.length);
        System.out.println(Arrays.toString(arrayB));
        //第五种:

        arrayB = arrayA.clone();
        System.out.println(Arrays.toString(arrayB));



    }




}

References:

ava - 数组拷贝的几种方式

猜你喜欢

转载自www.cnblogs.com/zhichun/p/12078122.html