Java:数组的几种拷贝方法

1、利用for循环进行数组的拷贝。

代码如下:

public static int[] copyArray(int[] array) {
        int[] ret = new int[array.length];
        for (int i = 0; i < array.length; i++) {
            ret[i] = array[i];
        }
        return ret;
    }
    public static void main(String[] args) {
        int[] array = {1,2,3,4,5};
        int[] ret =  copyArray(array);
        System.out.println(Arrays.toString(ret));
    }

2、System.arraycopy

具体使用方式 : System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length)

Obeject src :源数组 ;srcPos :源数组开始拷贝的下标 ;dest :目的数组 ;length :要拷贝的大小。

示例:

public static void main(String[] args) {
        int[] array = {1,2,3,4,5};
        int[] dest = new int[array.length];
        System.arraycopy(array,0,dest,0,array.length);
        System.out.println(Arrays.toString(dest));

 该方法与for相比速度更快。

3、Arrays.copyOf

使用方法:Arrays.copyOf(int[ ] original, int newLength).用int类型举例。

int[ ] original:源数组 ; int newLength :新数组的大小

示例:

 public static void main(String[] args) {
        int[] array = {1,2,3,4,5};
        int[] ret = Arrays.copyOf(array,array.length);
        System.out.println(Arrays.toString(ret));
    }

此方法底层调用的依然是System.arraycopy

4、array.clone

示例:

public static void main(String[] args) {
        int[] array = {1,2,3,4,5};
        int[] ret2 = array.clone();
        System.out.println(Arrays.toString(ret2));
    }

实际上是Object方法。

以上四种拷贝方式全部都是浅拷贝。

 
发布了82 篇原创文章 · 获赞 0 · 访问量 1163

猜你喜欢

转载自blog.csdn.net/yufy0528/article/details/104951751