java数组的复制方法有哪些

Java 中复制数组的方法有 System.arraycopy()、Arrays.copyOf()、Arrays.copyOfRange() 和手动循环复制。System.arraycopy() 速度最快,Arrays.copyOf() 最简单,手动循环复制最通用。对于浅拷贝,所有方法都适用,而对于深拷贝,仅 Arrays.copyOf() 和 Arrays.copyOfRange() 可用。

Java 数组复制方法

Java 中复制数组的方法有以下几种:

1. 使用 System.arraycopy() 方法

System.arraycopy(src, srcPos, dest, destPos, length);
  • src:源数组
  • srcPos:源数组的起始索引(包括)
  • dest:目标数组
  • destPos:目标数组的起始索引(包括)
  • length:要复制的元素数量

2. 使用 Arrays.copyOf() 方法

Arrays.copyOf(src, length);
  • src:源数组
  • length:新数组的长度

3. 使用 Arrays.copyOfRange() 方法

Arrays.copyOfRange(src, from, to);
  • src:源数组
  • from:起始索引(包括)
  • to:结束索引(不包括)

4. 手动循环复制

这种方法不需要使用任何内置方法,而是手动遍历数组并逐个元素复制。

for (int i = 0; i < src.length; i++) {
    dest[i] = src[i];
}

哪种方法好?

对于浅拷贝,这四种方法都可以使用。但是,对于深拷贝,仅 Arrays#copyOf()Arrays#copyOfRange() 可以实现。

一般来说,使用 System.arraycopy() 方法速度最快,使用 Arrays#copyOf() 方法最简单,而手动循环复制方法最通用。

根据你的具体需求选择合适的方法。