Java复制(拷贝)数组的五种方法汇总

  

Java复制(拷贝)数组的五种方法汇总

一、使用for循环逐一复制

这是最基本的数组复制方法,适用于任何类型的数组。代码示例如下:

int[] arr1 = {1, 2, 3, 4, 5};
int[] arr2 = new int[arr1.length]; // 创建空数组,长度等于原数组

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

二、使用java.util.Arrays类的copyOf方法复制

java.util.Arrays类提供了一个copyOf方法,可以用于复制一维数组和二维数组。示例如下:

int[] arr1 = {1, 2, 3, 4, 5};
int[] arr2 = Arrays.copyOf(arr1, arr1.length);

三、使用java.util.Arrays类的copyOfRange方法复制

java.util.Arrays类的另一个方法是copyOfRange,它可以复制从指定位置开始到结束位置的一部分原数组。例如:

int[] arr1 = {1, 2, 3, 4, 5};
int[] arr2 = Arrays.copyOfRange(arr1, 0, 3);

以上代码将复制原数组arr1从位置0到位置3的元素(不包括第4个元素)到新数组arr2。

四、使用System.arraycopy复制

System.arraycopy方法是Java中用于复制数组的方法之一。以下是使用System.arraycopy方法的示例:

int[] arr1 = {1, 2, 3, 4, 5};
int[] arr2 = new int[arr1.length];

System.arraycopy(arr1, 0, arr2, 0, arr1.length);

五、使用Arrays.stream和toArray方法复制

这个方法适用于Java 8及以上版本。示例如下:

int[] arr1 = {1, 2, 3, 4, 5};
int[] arr2 = Arrays.stream(arr1).toArray();

示例说明

示例1:使用Arrays.copyOf方法

public class ArraysCopyOfDemo {
    public static void main(String[] args) {
        int[] arr1 = {1, 2, 3, 4, 5};
        int[] arr2 = Arrays.copyOf(arr1, 3);
        System.out.println("原数组内容:" + Arrays.toString(arr1));
        System.out.println("复制后数组内容:" + Arrays.toString(arr2));
    }
}

输出结果:

原数组内容:[1, 2, 3, 4, 5]
复制后数组内容:[1, 2, 3]

示例2:使用System.arraycopy方法

public class SystemArrayCopyDemo {
    public static void main(String[] args) {
        int[] arr1 = {1, 2, 3, 4, 5};
        int[] arr2 = new int[arr1.length];
        System.arraycopy(arr1, 2, arr2, 0, 3);
        System.out.println("原数组内容:" + Arrays.toString(arr1));
        System.out.println("复制后数组内容:" + Arrays.toString(arr2));
    }
}

输出结果:

原数组内容:[1, 2, 3, 4, 5]
复制后数组内容:[3, 4, 5, 0, 0]

总结

以上是Java中五种常见的数组复制方法,每种方法适用于不同的情况。在选择复制方法时,可以根据需求和所选版本的Java API文档,选择适合的方法。

相关文章