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

Java中的Array copyOf函数

发布时间:2023-07-01 05:30:09

在Java中,数组是一种用于存储多个相同类型数据的数据结构。数组copyOf函数是Java中用于复制数组的方法之一。该方法可以实现对指定数组的复制,并返回一个新的数组。

copyOf方法是Arrays类的一个静态方法,它有两个重载版本:

1. public static boolean[] copyOf(boolean[] original, int newLength)

2. public static byte[] copyOf(byte[] original, int newLength)

3. public static char[] copyOf(char[] original, int newLength)

...

以此类推,还包括short、int、long、float、double等基本数据类型的数组。

同时,copyOf方法还支持对对象数组进行复制:

4. public static <T> T[] copyOf(T[] original, int newLength)

其中,original是需要复制的原始数组,newLength是复制后数组的长度。方法会根据newLength创建一个新的数组,并将original中的值拷贝到新数组中。如果newLength小于original的长度,则新数组截取前newLength个元素;如果newLength大于original的长度,则新数组的后面部分填充默认值。

copyOf方法的返回值是一个新的数组,可以直接使用或赋给其他数组引用变量。

示例:

int[] nums = {1, 2, 3, 4, 5};
int[] newNums = Arrays.copyOf(nums, 7);
System.out.println(Arrays.toString(newNums));

运行结果:

[1, 2, 3, 4, 5, 0, 0]

在上述示例中,首先创建了一个长度为5的原始数组nums,然后通过copyOf方法将nums数组复制到长度为7的newNums数组中。由于newNums长度大于nums长度,所以新数组的后面两个元素填充了默认值0。最后,通过Arrays.toString方法将新数组打印出来。

除了copyOf方法之外,还有一个类似的方法copyOfRange,可以实现对数组的部分复制。copyOfRange方法有三个参数:原始数组、起始位置和终止位置,起始位置是要复制的起始元素下标,终止位置是要复制的最后一个元素下标加1。该方法将从起始位置开始,复制到终止位置,返回一个新的数组。

示例:

int[] nums = {1, 2, 3, 4, 5};
int[] newNums = Arrays.copyOfRange(nums, 1, 4);
System.out.println(Arrays.toString(newNums));

运行结果:

[2, 3, 4]

在上述示例中,通过copyOfRange方法从nums数组中复制了下标为1到3的元素,返回一个新的数组newNums。

综上所述,Java中的array copyOf函数是一个用于复制数组的方法,它可以实现对原始数组的完全复制或部分复制,并返回一个新的数组。该方法可以用于对数组进行扩容、缩容或部分元素提取等操作,非常方便实用。