在 Java 中如何使用 Arrays.copyOf 方法复制数组?

  • by

Arrays.copyOf 方法返回一个新数组,该数组中包含从指定数组复制的元素。

public static int[] copyOf(int[] originalArray, int length)

如果 length 参数大于数组的长度,则返回的数组其余元素将填充默认值(int 默认值是 0,Object 默认值是 null)。如果 length 参数小于数组长度,则多出来的元素将会被截断不会包含在返回的数组中。

int[] originalArray = {1, 2, 3, 4, 5};
 
/*
 * To copy elements of one array to another, use the
 * copyOf method.
 */
 
/*
 * This will copy elements of the original array
 * to the copied array having size of 10.
 * The elements from index 5 to 9 will be set as 0 since
 * the original array has only 5 elements.
 */
int[] copiedArray1 = Arrays.copyOf(originalArray, 10);
 
System.out.println("Copied array contains: " + Arrays.toString(copiedArray1));
 
 
/*
 * This will copy elements of the original array
 * to the copied array having size of 2.
 * The elements at index 2 to 4 will be truncated since
 * the copied array can only hold 2 elements.
 */
int[] copiedArray2 = Arrays.copyOf(originalArray, 2);
 
System.out.println("Copied array contains: " + Arrays.toString(copiedArray2));

输出:

Copied array contains: [1, 2, 3, 4, 5, 0, 0, 0, 0, 0]
Copied array contains: [1, 2]

对于 boolean,byte,short,char,int,long,float,double 和 Object 类型,copyOf 都有对应的重载方法。如果指定的长度小于零,则 copyOf 方法将引发 NegativeArrayIndexException,如果原始数组为 null,则将引发 NullPointerException。

相关代码示例:
Java Arrays 类教程及代码示例

标签:

发表评论

电子邮件地址不会被公开。 必填项已用*标注