Java中的Array copyOf函数
在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函数是一个用于复制数组的方法,它可以实现对原始数组的完全复制或部分复制,并返回一个新的数组。该方法可以用于对数组进行扩容、缩容或部分元素提取等操作,非常方便实用。
