java.util.Arrays.copyOf()方法用于复制指定数组,截断或用空值填充(如果需要),以便副本具有指定的长度。对于在原始数组和副本中均有效的所有索引,这两个数组将包含相同的值。对于在副本中有效但在原始中无效的任何索引,副本将包含 null。当且仅当指定的长度大于原始数组的长度时,此类索引才会存在。结果数组属于 newType 类。
语法
public static <T,U> T[] copyOf(U[] original, int newLength,
Class<? extends T[]> newType)
这里,U 是原始数组中对象的类,T 是返回数组中对象的类.
参数
原始 | 指定要复制的数组。 |
newLength | 指定要返回的副本的长度。 |
newType | 指定要返回的副本的类。 |
返回值
返回原始数组的副本,截断或用 null 填充以获得指定的长度。
异常
- 抛出 NegativeArraySizeException,如果 newLength 为负数。
- 如果原始元素为 null,则抛出 NullPointerException。
- 如果从原始元素复制的元素不为 null,则抛出 ArrayStoreException可以存储在类 newType 的数组中的运行时类型。
示例:
在下面的示例中,java.lang. util.Arrays.copyOf() 方法返回给定数组的副本,并用空值截断或填充以获得指定的长度。
import java.util.*;
public class MyClass {
public static void main(String[] args) {
//创建一个整数数组
Integer Arr1[] = {10, 5, 25};
//将Arr1复制到Arr2中,长度为5
Number[] Arr2 = Arrays.copyOf(Arr1, 5, Number[].class);
//打印Arr1
System.out.print("Arr1 contains:");
for(Integer i: Arr1)
System.out.print(" " + i);
//打印Arr2
System.out.print("\nArr2 contains:");
for(Number i: Arr2)
System.out.print(" " + i);
}
}
上述代码的输出将是:
Arr1 contains: 10 5 25
Arr2 contains: 10 5 25 null null