Arrays.copyOf 和 System.arraycopy
时间: 2023-10-19 12:27:56 浏览: 155
System.arraycopy和Arrays.copyOf
4星 · 用户满意度95%
Arrays.copyOf() 和 System.arraycopy() 都是用于数组的复制操作,但它们有一些不同之处。
Arrays.copyOf() 方法是在 Java 1.6 版本中引入的,它用于创建一个新的数组,并将源数组中的元素复制到新数组中。该方法具有以下两种重载形式:
1. copyOf(original, newLength):将原始数组的前 newLength 个元素复制到新数组中。如果新长度小于原始数组的长度,则新数组将被截断;如果新长度大于原始数组的长度,则新数组将被填充默认值。
2. copyOf(original, newLength, newType):与上述方法相似,但可以指定新数组的类型。
示例使用 Arrays.copyOf() 方法:
```java
int[] original = {1, 2, 3, 4, 5};
int[] copy1 = Arrays.copyOf(original, 3); // 复制原数组的前三个元素
int[] copy2 = Arrays.copyOf(original, 7); // 复制原数组的所有元素,并用默认值填充额外位置
```
System.arraycopy() 方法是在 Java 1.0 版本中引入的,它也用于将源数组中的元素复制到目标数组中。该方法的语法如下:
```java
System.arraycopy(src, srcPos, dest, destPos, length);
```
其中,src 是源数组,srcPos 是源数组中要开始复制的起始位置,dest 是目标数组,destPos 是目标数组中要开始粘贴的起始位置,length 是要复制的元素个数。
示例使用 System.arraycopy() 方法:
```java
int[] src = {1, 2, 3, 4, 5};
int[] dest = new int[5];
System.arraycopy(src, 0, dest, 0, 5); // 复制 src 数组的所有元素到 dest 数组中
```
总结来说,Arrays.copyOf() 方法提供了更简洁的方式来复制数组,并且可以轻松地截取或填充数组。而 System.arraycopy() 方法则提供了更灵活的复制方式,可以指定复制的起始位置和复制的元素数量。
阅读全文