Java数组如何拷贝呢?
Java数据拷贝有以下方法,下文将一一道来,如下所示:
-
Object.clone():
Object
类提供clone()
方法,由于java中的数组也是Object
,所以我们可以使用此方法实现完整的数组复制 -
System.arraycopy()
:System
类arraycopy()
是进行数组部分复制的最佳方法。它提供了一种指定要复制的元素总数以及源和目标数组索引位置的简便方法。
如,
System.arraycopy(source,3,destination,2,6)
将6
个元素从源复制到目标,从源的第3
个索引开始复制到目标的第2
个索引。 -
Arrays.copyOf()
:当要复制数组的前几个元素或数组的完整副本,可以使用此方法。显然它不像
System.arraycopy()
那样通用,但它也不会让人感到困惑和易于使用 -
Arrays.copyOfRange()
:当要复制数组中的少数元素,而起始索引不是0
,则可以使用此方法复制部分数组
例:Java复制数组
package com.java265.util;
import java.util.Arrays;
public class testClass{
public static void main(String[] args) {
int[] source = {8,99,100,111,2,3,4,34,34, 0};
int[] destination=null;
System.out.println("源数组= "+Arrays.toString(source));
System.arraycopy(source, 0, destination, 0, 5);
System.out.println("复制后的数组 = "+Arrays.toString(destinatio
}
}
Java数组拷贝 - 浅拷贝
import java.util.Arrays;
public class testClassB{
public static void main(String[] args) {
testClass e = new testClass("j");
testClass[] arr1 = {e};
testClass[] arr2 = new testClass[arr1.length];
System.arraycopy(arr1, 0, arr2, 0, arr1.length);
System.out.println("arr1= "+Arrays.toString(arr1));
System.out.println("arr2 = "+Arrays.toString(arr2));
}
}
class testClass {
private String name;
public testClass(String n) {
this.name = n;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return this.name;
}
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。