Arrays.copyOf()方法是做什么的?
时间: 2024-09-06 21:03:31 浏览: 54
`Arrays.copyOf()` 方法是 Java 中 `java.util.Arrays` 类提供的一个静态方法,用于复制一个数组到一个新的数组中。这个方法可以用来创建一个新数组,其长度与原数组相同,或者创建一个新的具有指定长度的数组。如果指定的新长度小于原数组的长度,则新数组只会包含原数组的前几个元素;如果新长度大于原数组的长度,则新数组中的剩余元素会被初始化为默认值(对于数值类型是0,对于布尔类型是false,对于对象引用类型是null)。
下面是 `Arrays.copyOf()` 方法的基本用法:
1. `copyOf(T[] original, int newLength)`:这个方法接受原始数组和新的长度作为参数。它返回一个新的数组,这个数组的长度由 `newLength` 指定。如果 `newLength` 小于原数组长度,新数组将截取原数组的前 `newLength` 个元素;如果 `newLength` 大于原数组长度,则新数组中多出的元素会被初始化为类型的默认值。
2. `copyOfRange(T[] original, int from, int to)`:这个方法接受原始数组、起始索引和结束索引作为参数,返回一个新数组,新数组包含从 `from`(包含)到 `to`(不包含)的元素。
下面是一个简单的使用示例:
```java
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] originalArray = {1, 2, 3, 4, 5};
// 复制整个数组到一个新的数组,长度与原数组相同
int[] newArray1 = Arrays.copyOf(originalArray, originalArray.length);
// 复制数组的前三个元素到一个新的数组,长度为3
int[] newArray2 = Arrays.copyOf(originalArray, 3);
// 复制数组的一部分到一个新的数组,从索引1开始到索引4结束
int[] newArray3 = Arrays.copyOfRange(originalArray, 1, 4);
System.out.println("New array1: " + Arrays.toString(newArray1));
System.out.println("New array2: " + Arrays.toString(newArray2));
System.out.println("New array3: " + Arrays.toString(newArray3));
}
}
```
执行上述代码,你会得到以下输出:
```
New array1: [1, 2, 3, 4, 5]
New array2: [1, 2, 3]
New array3: [2, 3, 4]
```
阅读全文