copyOf()函数来复制一个数组
在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()方法复制数组时,不能将原始数组和目标数组设置为同一对象,否则将导致更改源数组时同时更改目标数组。通常 创建一个新数组,并将原始数组复制到新数组中。
