最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Java 中怎样使用 Arrays.copyOf 复制数组
时间:2026-07-07 09:52:46 编辑:袖梨 来源:一聚教程网
Arrays.copyOf 是 Java 中高效复制数组的方法,底层调用 System.arraycopy,支持基本类型和引用类型;可指定新长度,自动填充默认值或截断,但仅浅拷贝且不支持多维数组深复制。
Arrays.copyOf 是 Java 中快速复制数组的常用方法,它能创建新数组并拷贝指定长度的元素,支持基本类型和引用类型,底层调用 System.arraycopy,效率高且代码简洁。
基本用法:复制全部或前 N 个元素
该方法有两个核心参数:原数组和目标长度。若新长度大于原数组长度,多出位置用默认值填充(如 0、false、null);若小于,则只取前 N 个元素。
int[] src = {1, 2, 3};int[] dst1 = Arrays.copyOf(src, 5); // → {1, 2, 3, 0, 0}int[] dst2 = Arrays.copyOf(src, 2); // → {1, 2}
支持泛型与对象数组
方法是泛型的(<T> T[] copyOf(T[] original, int newLength)),可直接用于字符串、自定义对象等引用类型数组,无需强制类型转换。
String[] s1 = {"a", "b", "c"};String[] s2 = Arrays.copyOf(s1, 4); // → {"a", "b", "c", null}- 注意:复制的是引用,不是对象本身——即浅拷贝。
与 Arrays.copyOfRange 的区别
如果只需复制中间某段(如索引 1 到 3),用 copyOfRange 更合适;而 copyOf 总是从索引 0 开始复制。
立即学习“Java免费学习笔记(深入)”;
-
Arrays.copyOf(arr, len)≡Arrays.copyOfRange(arr, 0, len) - 但后者更明确意图,尤其在需要偏移时不可替代。
注意事项
传入 null 会抛 NullPointerException;长度为负数则抛 NegativeArraySizeException。生产环境中建议先校验参数。
- 不支持多维数组的“深复制”,二维数组用
copyOf只复制第一层引用。 - 若需深拷贝对象数组,应结合序列化或手动遍历克隆。
相关文章
- 《Disney Lorcana: Wilds Unknown》预购开启 首批《Toy Story》及皮克斯卡牌购买指南 07-29
- 车来了赶车闹钟如何设置 07-29
- 崩坏星穹铁道余晖残卷巨剑守护打法攻略 07-29
- 崩坏星穹铁道砂金角色部分背景介绍 07-29
- 崩坏3雷电芽衣什么时候上线 07-29
- 玩具熊的五夜后宫4代噩梦气球男孩Nightmare Balloon Boy介绍 07-29