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

copyOf函数如何复制一个数组?

发布时间:2023-07-06 17:55:24

copyOf函数是Java中Arrays类提供的一个方法,用于复制一个数组。它接受两个参数:原始数组和目标数组的长度。它返回一个新的数组,新数组的长度为目标长度,并且包含原始数组的其中一部分或全部元素。

在复制数组时,copyOf函数会执行以下操作:

1. 首先,copyOf函数会创建一个长度为目标长度的新数组。

2. 然后,它会将原始数组中的元素逐个复制到新数组中,新数组的元素顺序与原始数组相同。

3. 如果原始数组的长度大于目标长度,copyOf函数会将原始数组中多余的元素丢弃。

4. 如果原始数组的长度小于目标长度,copyOf函数会使用默认值填充新数组的剩余位置。

以下是一个使用copyOf函数复制数组的示例代码:

import java.util.Arrays;

public class CopyOfExample {
    public static void main(String[] args) {
        int[] originalArray = {1, 2, 3, 4, 5};
        int targetLength = 7;

        int[] copiedArray = Arrays.copyOf(originalArray, targetLength);

        System.out.println("Original Array: " + Arrays.toString(originalArray));
        System.out.println("Copied Array: " + Arrays.toString(copiedArray));
    }
}

上述代码中,原始数组originalArray包含5个元素,目标长度targetLength为7。通过调用Arrays.copyOf(originalArray, targetLength),我们将originalArray复制到了copiedArray。最后,我们将原始数组和复制后的数组输出到控制台。

运行上述代码,输出如下:

Original Array: [1, 2, 3, 4, 5]
Copied Array: [1, 2, 3, 4, 5, 0, 0]

可以看到,新数组copiedArray的长度为7,并且包含了原始数组originalArray的前5个元素。由于目标长度大于原始数组长度,所以剩余位置被填充为默认值0。

copyOf函数在复制数组时非常方便,但需要注意的是,在数组长度较大时,可能会影响性能和内存消耗。在处理大型数组时,建议使用System.arraycopy方法来执行数组复制操作,以提高性能和减少内存占用。