当前位置:首页 > Java

java如何复制数组

2026-02-05 12:10:23Java

使用System.arraycopy方法

System.arraycopy是Java中高效复制数组的方法,适用于任意类型的数组。需要指定源数组、源起始位置、目标数组、目标起始位置及复制长度。

int[] source = {1, 2, 3, 4, 5};
int[] destination = new int[5];
System.arraycopy(source, 0, destination, 0, source.length);
  • 参数说明:源数组、源起始索引、目标数组、目标起始索引、复制的元素数量。
  • 注意:需确保目标数组长度足够,否则抛出ArrayIndexOutOfBoundsException

使用Arrays.copyOf方法

适用于创建新数组并复制内容,可截断或填充默认值。

int[] original = {1, 2, 3};
int[] copied = Arrays.copyOf(original, original.length); // 完整复制
int[] truncated = Arrays.copyOf(original, 2); // 截断为前2个元素
int[] extended = Arrays.copyOf(original, 5); // 扩展长度,多余元素填充0
  • 适用于一维数组,底层调用System.arraycopy
  • 第二个参数为新数组长度,可大于或小于原数组长度。

使用clone方法

数组本身实现了Cloneable接口,直接调用clone()可浅拷贝数组。

int[] array = {1, 2, 3};
int[] clonedArray = array.clone();
  • 简单易用,但仅适用于一维数组的浅拷贝。
  • 多维数组的复制仍需遍历或使用其他方法。

手动遍历复制

通过循环逐元素复制,灵活但代码量较多。

int[] source = {1, 2, 3};
int[] destination = new int[source.length];
for (int i = 0; i < source.length; i++) {
    destination[i] = source[i];
}
  • 适用于需要特殊处理的场景(如条件过滤)。
  • 性能低于System.arraycopy

多维数组复制

多维数组需逐层复制,或结合上述方法嵌套使用。

int[][] matrix = {{1, 2}, {3, 4}};
int[][] copiedMatrix = new int[matrix.length][];
for (int i = 0; i < matrix.length; i++) {
    copiedMatrix[i] = Arrays.copyOf(matrix[i], matrix[i].length);
}
  • 注意:直接使用clone()Arrays.copyOf对多维数组仅是浅拷贝。

第三方库(如Apache Commons Lang)

使用ArrayUtils.cloneArrayUtils.addAll简化操作。

import org.apache.commons.lang3.ArrayUtils;
int[] array = {1, 2, 3};
int[] copied = ArrayUtils.clone(array);
  • 需添加依赖,适合项目中已使用该库的场景。

选择建议

  • 性能优先:System.arraycopy
  • 简洁性:Arrays.copyOfclone()
  • 复杂需求:手动遍历或第三方库。

java如何复制数组

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

相关文章

java如何使用

java如何使用

Java 基本使用方法 Java 是一种广泛使用的编程语言,适用于开发各种类型的应用程序。以下是 Java 的基本使用方法,包括环境配置、语法基础和常用操作。 安装 Java 开发环境 下载并安装…

如何运行java

如何运行java

运行Java程序的方法 安装Java开发工具包(JDK) 确保系统已安装JDK。可通过命令行输入 java -version 检查是否安装。若未安装,需从Oracle官网或OpenJDK下载并配置环境…

vue实现数组

vue实现数组

vue实现数组操作 在Vue中操作数组需要使用Vue提供的响应式方法,直接修改数组元素不会触发视图更新。以下是常见的数组操作方法: 添加元素 使用push、unshift或splice方法添加元素…

如何运行java程序

如何运行java程序

编写Java代码 创建一个以.java为扩展名的文件,例如HelloWorld.java。文件内容需包含一个类定义,类名必须与文件名一致。例如: public class HelloWorld {…

如何配置java环境

如何配置java环境

下载JDK安装包 访问Oracle官网或OpenJDK官网,选择适合操作系统的JDK版本(如Windows、macOS或Linux)。下载完成后,运行安装程序并按照提示完成安装。 设置环境变量 右…

如何自学java

如何自学java

选择合适的学习资源 从官方文档开始,Oracle提供的Java官方教程(Java Tutorials)是权威且免费的学习资料。在线平台如Codecademy、Coursera或Udemy提供互动式课程…