当前位置:首页 > Java

java如何复制数组

2026-03-03 23:25:34Java

使用 System.arraycopy() 方法

System.arraycopy() 是 Java 中高效的原生数组复制方法,适用于任意类型的数组。语法如下:

System.arraycopy(srcArray, srcPos, destArray, destPos, length);
  • srcArray:源数组
  • srcPos:源数组起始位置
  • destArray:目标数组
  • destPos:目标数组起始位置
  • length:要复制的元素数量

示例代码:

int[] src = {1, 2, 3, 4, 5};
int[] dest = new int[5];
System.arraycopy(src, 0, dest, 0, src.length);

使用 Arrays.copyOf() 方法

Arrays.copyOf() 适用于快速复制整个数组或截取部分元素,自动创建目标数组。语法:

java如何复制数组

destArray = Arrays.copyOf(srcArray, newLength);
  • newLength:目标数组长度(可扩展或截断)

示例代码:

import java.util.Arrays;
int[] src = {1, 2, 3};
int[] dest = Arrays.copyOf(src, src.length); // 完整复制
int[] partialDest = Arrays.copyOf(src, 2);   // 复制前两个元素

使用 Arrays.copyOfRange() 方法

若需复制数组的特定区间,可使用 Arrays.copyOfRange()

java如何复制数组

destArray = Arrays.copyOfRange(srcArray, fromIndex, toIndex);
  • fromIndex:起始索引(包含)
  • toIndex:结束索引(不包含)

示例代码:

int[] src = {10, 20, 30, 40};
int[] dest = Arrays.copyOfRange(src, 1, 3); // 结果为 {20, 30}

手动循环复制

通过循环遍历数组元素逐个赋值,适合需要自定义处理的场景:

int[] src = {5, 6, 7};
int[] dest = new int[src.length];
for (int i = 0; i < src.length; i++) {
    dest[i] = src[i];
}

使用 clone() 方法

数组对象自带的 clone() 方法可快速实现浅拷贝:

int[] src = {8, 9};
int[] dest = src.clone();

注意事项

  • 多维数组复制时需逐层处理,否则会导致浅拷贝(子数组引用共享)。
  • 对象数组复制仅拷贝引用,深拷贝需手动实现或使用序列化工具。

标签: 数组java
分享给朋友:

相关文章

如何学习java

如何学习java

学习Java的步骤 理解基础知识 从Java的基本语法开始,包括变量、数据类型、运算符、控制流(if-else、循环)等。掌握这些基础概念是后续学习的基石。 学习面向对象编程(OOP) Java是一…

如何学好java

如何学好java

理解基础概念 掌握Java的核心概念是学习的基础。包括数据类型、变量、运算符、控制流(如循环和条件语句)、数组等。理解面向对象编程(OOP)的四大特性:封装、继承、多态和抽象。 实践编程练习 通过实…

java如何初始化数组

java如何初始化数组

初始化数组的方法 在Java中,数组可以通过多种方式进行初始化。以下是几种常见的方法: 静态初始化(直接赋值) 在声明数组时直接指定元素值,适用于已知数组内容的情况: int[] numbers…

如何安装java运行环境

如何安装java运行环境

下载Java开发工具包(JDK) 访问Oracle官方网站或OpenJDK项目页面,选择适合操作系统的JDK版本进行下载。Windows用户通常选择.exe安装包,macOS用户选择.dmg,Linu…

java中如何获取当前时间

java中如何获取当前时间

获取当前时间的几种方法 使用 java.time 包(Java 8及以上推荐) import java.time.LocalDateTime; LocalDateTime currentTime =…

如何阅读java源码

如何阅读java源码

阅读Java源码的方法 选择合适的源码项目 初学者建议从JDK核心类库(如java.lang、java.util)或知名开源项目(如Spring、Guava)入手。选择文档完善、社区活跃的项目能降低理…