当前位置:首页 > Java

java数组如何复制

2026-03-23 20:59:15Java

使用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);

使用Arrays.copyOf方法

Arrays.copyOf会创建一个新数组,并自动截断或填充默认值(如0或null)以匹配指定长度。

java数组如何复制

int[] original = {1, 2, 3};
int[] copied = Arrays.copyOf(original, original.length); // 复制整个数组
int[] resized = Arrays.copyOf(original, 5); // 新数组长度为5,多出部分填充0

使用Arrays.copyOfRange方法

复制数组的指定范围,包含起始索引(包含),结束索引(不包含)。

int[] array = {10, 20, 30, 40, 50};
int[] partialCopy = Arrays.copyOfRange(array, 1, 4); // 结果为{20, 30, 40}

使用clone方法

数组对象实现了Cloneable接口,直接调用clone()会生成一个浅拷贝的新数组。

java数组如何复制

String[] names = {"Alice", "Bob"};
String[] clonedNames = names.clone();

手动循环复制

通过遍历源数组逐个赋值,适合需要额外逻辑处理的场景。

double[] data = {1.1, 2.2, 3.3};
double[] manualCopy = new double[data.length];
for (int i = 0; i < data.length; i++) {
    manualCopy[i] = data[i];
}

对象数组的深拷贝

若数组元素是对象,需单独处理每个对象的拷贝。以下示例使用流式操作:

class Person implements Cloneable {
    String name;
    @Override protected Object clone() throws CloneNotSupportedException {
        return super.clone();
    }
}
Person[] people = new Person[2];
people[0] = new Person();
Person[] deepCopy = Arrays.stream(people)
                          .map(p -> { try { return (Person)p.clone(); } catch (Exception e) { return null; }})
                          .toArray(Person[]::new);

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

相关文章

如何运行java程序

如何运行java程序

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

java如何连接数据库

java如何连接数据库

Java连接数据库的方法 Java连接数据库通常使用JDBC(Java Database Connectivity)技术,以下是具体步骤和示例代码。 加载数据库驱动 在连接数据库之前,需要加载对应的…

java如何定义字符串数组

java如何定义字符串数组

定义字符串数组的方法 在Java中定义字符串数组有多种方式,具体取决于使用场景和初始化需求。以下是常见的几种方法: 直接初始化数组元素 String[] strArray = {"Apple",…

java中如何获取当前时间

java中如何获取当前时间

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

如何导入java项目

如何导入java项目

导入Java项目的方法 使用IDE导入(如IntelliJ IDEA或Eclipse) 打开IDE后选择导入现有项目,导航至项目根目录(包含pom.xml或build.gradle的文件位置)。IDE…

java如何取绝对值

java如何取绝对值

取绝对值的方法 在Java中,取绝对值可以通过以下几种方式实现: 使用Math.abs()方法 Math.abs()是Java中最常用的取绝对值方法,适用于多种数据类型: int absolute…