欢迎访问宙启技术站
智能推送

copyOf()函数来复制一个数组

发布时间:2023-06-04 22:51:08

在Java中,copyOf()函数是一个非常有用的函数,可以用来复制一个数组。该函数是在Java 1.6中引入的,并且可以在所有Java版本中使用。该函数接受一个源数组作为参数,并返回一个新的数组,该数组包含源数组的所有元素。

copyOf()函数的语法如下:

public static T[] copyOf(T[] original, int newLength)

其中,original是源数组,newLength是新数组的长度。注意,新数组的长度不一定需要与原始数组的长度相同。如果新数组的长度大于原始数组的长度,则新数组的最后几个元素将被填充为默认值。如果新数组的长度小于原始数组的长度,则只有前几个元素会被复制到新数组中。

下面是一个使用copyOf()函数的示例代码:

int[] originalArray = {1, 2, 3, 4, 5};

int[] newArray = Arrays.copyOf(originalArray, 7);

上面的代码复制了名为originalArray的数组,并将其存储在名为newArray的新数组中。新数组的长度为7,其中前5个元素是原始数组的元素,后2个元素将是默认值。

除了整数数组之外,copyOf()函数还可以用于复制任何类型的数组。下面是一个使用copyOf()函数复制字符串数组的示例代码:

String[] originalArray = {"apple", "banana", "cherry", "durian"};

String[] newArray = Arrays.copyOf(originalArray, 6);

上面的代码复制了名为originalArray的字符串数组,并将其存储在名为newArray的新数组中。新数组的长度为6,其中前4个元素是原始数组的元素,后2个元素将是默认值null。

除了使用copyOf()函数复制数组之外,还可以使用System.arraycopy()方法来复制数组。System.arraycopy()方法也可以用于复制任何类型的数组,并且该方法通常比copyOf()函数的速度更快。下面是一个使用System.arraycopy()方法来复制整数数组的示例代码:

int[] originalArray = {1, 2, 3, 4, 5};

int[] newArray = new int[7];

System.arraycopy(originalArray, 0, newArray, 0, originalArray.length);

上面的代码创建了一个名为newArray的新数组,然后使用System.arraycopy()方法将原始数组的元素复制到新数组中。新数组的长度为7,其中前5个元素是原始数组的元素,后2个元素将是默认值。

需要注意的是,在使用copyOf()函数或System.arraycopy()方法复制数组时,不能将原始数组和目标数组设置为同一对象,否则将导致更改源数组时同时更改目标数组。通常 创建一个新数组,并将原始数组复制到新数组中。