Java数组如何拷贝呢?

Java-经验王 Java经验 发布时间:2021-04-17 18:35:49 阅读数:16308 1

 Java数据拷贝有以下方法,下文将一一道来,如下所示:

  1. Object.clone(): Object类提供clone()方法,由于java中的数组也是Object,所以我们可以使用此方法实现完整的数组复制

  2. System.arraycopy():Systemarraycopy()是进行数组部分复制的最佳方法。

           它提供了一种指定要复制的元素总数以及源和目标数组索引位置的简便方法。

            如,System.arraycopy(source,3,destination,2,6)6个元素从源复制到目标,从源的第3个索引开始复制到目标的第2个索引。

  3. Arrays.copyOf():当要复制数组的前几个元素或数组的完整副本,可以使用此方法。

           显然它不像System.arraycopy()那样通用,但它也不会让人感到困惑和易于使用 

  4. 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;
    }
}
 
 
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/1618656390287.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者