📅  最后修改于: 2023-12-03 14:42:57.657000             🧑  作者: Mango
在Java中,数组通常是一个固定长度的数据结构,一旦创建便不能更改数组大小。不过,Java 1.6版本以后,Java中加入了Arrays类的copyOf()方法,可以通过该方法创建一个新的数组,同时可以指定复制数组的长度,如果指定长度小于原数组长度,那么新数组将只复制原数组前面的元素。如果指定长度大于原数组长度,则新数组其他位置被填充为默认初始值。
copyOf()方法属于Arrays类的静态方法,语法如下:
public static int[] copyOf(int[] original, int newLength)
其中,参数original表示原数组,newLength表示需要复制的新数组长度。
下面是一个简单的示例,说明如何使用copyOf()方法创建一个新的数组:
import java.util.Arrays;
public class CopyArrayExample {
public static void main(String[] args) {
int[] originalArray = {1,2,3,4,5};
int[] copiedArray = Arrays.copyOf(originalArray, 3);
System.out.println("Original Array: " + Arrays.toString(originalArray));
System.out.println("Copied Array: " + Arrays.toString(copiedArray));
}
}
输出结果如下:
Original Array: [1, 2, 3, 4, 5]
Copied Array: [1, 2, 3]
在上面的示例中,我们先定义了原始数组originalArray,然后使用copyOf()方法创建了一个新的数组,长度为3。最后,我们使用Arrays.toString()方法输出原数组和新数组的元素内容。
我们还可以使用copyOf()方法创建一个长度大于原数组长度的新数组,并指定需要填充的默认值。下面是一个示例:
import java.util.Arrays;
public class CopyArrayExample2 {
public static void main(String[] args) {
int[] originalArray = {1,2,3,4,5};
int[] copiedArray = Arrays.copyOf(originalArray, 7);
System.out.println("Original Array: " + Arrays.toString(originalArray));
System.out.println("Copied Array: " + Arrays.toString(copiedArray));
}
}
输出结果如下:
Original Array: [1, 2, 3, 4, 5]
Copied Array: [1, 2, 3, 4, 5, 0, 0]
在上面的示例中,我们使用copyOf()方法创建了一个长度为7的新数组,并指定其他位置填充默认值。注意,默认值为数组元素类型的默认值,对于int类型,默认值为0。
除了创建int类型的数组,我们还可以使用copyOf()方法创建其他类型的数组。下面是一个示例,创建一个字符串类型的数组:
import java.util.Arrays;
public class CopyArrayExample3 {
public static void main(String[] args) {
String[] originalArray = {"apple", "banana", "orange"};
String[] copiedArray = Arrays.copyOf(originalArray, 5);
System.out.println("Original Array: " + Arrays.toString(originalArray));
System.out.println("Copied Array: " + Arrays.toString(copiedArray));
}
}
输出结果如下:
Original Array: [apple, banana, orange]
Copied Array: [apple, banana, orange, null, null]
在上面的示例中,我们使用copyOf()方法创建了一个长度为5的字符串类型的数组。其他位置都填充有默认值null。
通过本文,我们学习了如何使用Java中的Arrays类的copyOf()方法,创建新的数组并复制原数组的元素。我们还学习了如何指定新数组的长度和填充默认值。copyOf()方法能大大简化在Java中数组的操作。