您有一个数组变量,并且想要将此数组的副本克隆为新的数组变量。为此,您可以使用Apache Commons LangArrayUtils.clone()方法。下面的代码段演示了一个基本数组的克隆,该数组中包含一些整数元素。
package org.nhooo.example.commons.lang; import org.apache.commons.lang3.ArrayUtils; public class PrimitiveArrayClone { public static void main(String[] args) { int[] fibonacci = new int[] {1, 1, 2, 3, 5, 8, 13, 21, 34, 55}; System.out.println("fibonacci = " + ArrayUtils.toString(fibonacci)); int[] clone = ArrayUtils.clone(fibonacci); System.out.println("clone = " + ArrayUtils.toString(clone)); } }
将fibonacci数组内容克隆到clone数组中,然后使用ArrayUtils.toString()方法将其打印出来。
fibonacci = {1,1,2,3,5,8,13,21,34,55} clone = {1,1,2,3,5,8,13,21,34,55}
在 clone ()方法上面的代码片段中,创建对新数组的引用。它自己的 clone ()方法不更改原始数组。除了克隆原始数组外,clone ()方法还可以克隆对象数组。
作为示例,我们将创建一个String对象数组并使用ArrayUtils.clone()方法克隆它。为了显示数组的内容,我们将再次使用该ArrayUtils.toString()方法。
package org.nhooo.example.commons.lang; import org.apache.commons.lang3.ArrayUtils; public class ObjectArrayClone { public static void main(String[] args) { String[] colors = new String[] {"Red", "Green", "Blue", "Yellow"}; System.out.println("colors = " + ArrayUtils.toString(colors)); String[] clone = ArrayUtils.clone(colors); System.out.println("clone = " + ArrayUtils.toString(clone)); } }
结果如下:
colors = {Red,Green,Blue,Yellow} clone = {Red,Green,Blue,Yellow}
唯一的来自不同克隆的基本数组时以及使用该对象阵列ArrayUtils.clone()方法是克隆的对象,例如当String,Date等我们需要转换的结果clone()的方法到目标对象类型。
Maven依赖
<!-- https://search.maven.org/remotecontent?filepath=org/apache/commons/commons-lang3/3.9/commons-lang3-3.9.jar --> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.9</version> </dependency>