Arrays.copyOf复制整个数组并可调整长度,若新长度大于原数组则用默认值填充,小于则截断;Arrays.copyOfRange复制指定范围的子数组,包含起始索引到结束索引前一位,适用于提取部分元素。两者均支持基本类型和对象数组,使用便捷且安全。

在Java中,Arrays.copyOf 和 Arrays.copyOfRange 是两个非常实用的数组复制工具方法,它们都定义在 java.util.Arrays 类中。相比手动遍历或使用 System.arraycopy,这两个方法更简洁、安全且易于理解。
Arrays.copyOf:复制数组并可调整长度
Arrays.copyOf 用于复制整个数组,同时允许指定新数组的长度。如果新长度大于原数组,剩余位置会用默认值填充(如0、null、false等);如果小于,则截断。
方法签名如下:
public static示例:
立即学习“Java免费学习笔记(深入)”;
- 复制整数数组并扩展长度
- 复制字符串数组并缩短
Arrays.copyOfRange:复制数组的指定范围
Arrays.copyOfRange 可以复制数组的一部分,从指定的起始索引(包含)到结束索引(不包含),适用于需要提取子数组的场景。
方法签名:
示例:
立即学习“Java免费学习笔记(深入)”;
- 提取部分元素
- 复制到最后
基本类型也支持
除了对象数组,Arrays 类为每种基本类型都提供了对应的重载方法,如 copyOf(int[], int)、copyOf(double[], int)、copyOfRange(char[], int, int) 等,使用方式一致。
例如:
double[] values = {1.1, 2.2, 3.3}; double[] dup = Arrays.copyOf(values, 3);基本上就这些。只要记得 copyOf 复制全部并可变长,copyOfRange 截取片段,就能灵活应对大多数数组复制需求。不复杂但容易忽略细节,比如索引边界和自动填充规则。










