System.arraycopy()

public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) 从指定的源数组中复制一个数组,从指定位置开始,到目标数组的指定位置。

示例

int[] a = { 4, 1, 3, 2 };
int[] b = new int[a.length];
System.arraycopy(a, 0, b, 0, a.length); //[4, 1, 3, 2]
在Java中如何复制数组

Java 提供了几种复制数组的方法。

请注意,将此选项与对象数组(而不是基元数组)一起使用将使用原始内容(而不是原始内容的副本)填充副本。

Arrays.copyOfRange()

主要用于复制一个数组的一部分,你也可以用它来复制整个数组到另一个数组,如下所示:

int[] a = { 4, 1, 3, 2 };
int[] b = Arrays.copyOfRange(a, 0, a.length); //[4, 1, 3, 2]

Arrays.copyOf()

java.util.Arrays 提供了一种将数组复制到另一个数组的简单方法。
下面是基本用法:

int[] a = {4, 1, 3, 2};
int[] b = Arrays.copyOf(a, a.length); //[4, 1, 3, 2]

请注意, Arrays.copyOf 还提供了一个重载,允许我们更改数组的类型:

Double[] doubles = { 1.0, 2.0, 3.0 };
Number[] numbers = Arrays.copyOf(doubles, doubles.length, Number[].class);

Object.clone()

由于数组是 Java 中的对象,因此我们可以使用 Object.clone()。

int[] a = { 4, 1, 3, 2 };
int[] b = a.clone(); //[4, 1, 3, 2]

请注意,数组的 Object.clone 方法执行浅拷贝,例如:它返回对新数组的引用,该数组引用与源数组相同的元素。

日期:2020-06-02 22:15:18 来源:oir作者:oir