Java复制(拷贝)数组的4种方法:arraycopy()方法、clone() 方法、copyOf()和copyOfRan

yizhihongxing

当我们需要在Java中复制(拷贝)数组时,有四种主要的方法可供选择:

  1. 使用arraycopy()方法
  2. 使用clone()方法
  3. 使用copyOf()方法
  4. 使用copyOfRange()方法

下面,我们将详细讲解这四种方法。

1. 使用arraycopy()方法

public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) 
  • src: 要复制的原始数组
  • srcPos: 原始数组的起始位置
  • dest: 目标数组
  • destPos: 目标数组的起始位置
  • length: 要复制的元素数目

示例如下:

public class ArrayCopyExample {
    public static void main(String[] args) {
        int[] sourceArray = {1, 2, 3, 4, 5};
        int[] destArray = new int[sourceArray.length];

        System.arraycopy(sourceArray, 0, destArray, 0, sourceArray.length);

        System.out.println("Source Array: " + Arrays.toString(sourceArray));
        System.out.println("Copied Array: " + Arrays.toString(destArray));
    }
}

输出结果:

Source Array: [1, 2, 3, 4, 5]
Copied Array: [1, 2, 3, 4, 5]

2. 使用clone()方法

使用clone()方法可以复制整个数组,示例如下:

public class ArrayCloneExample {
    public static void main(String[] args) {
        int[] sourceArray = {1, 2, 3, 4, 5};

        int[] clonedArray = sourceArray.clone();

        System.out.println("Source Array: " + Arrays.toString(sourceArray));
        System.out.println("Cloned Array: " + Arrays.toString(clonedArray));
    }
}

输出结果:

Source Array: [1, 2, 3, 4, 5]
Cloned Array: [1, 2, 3, 4, 5]

3. 使用copyOf()方法

使用copyOf()方法可以复制原数组的一个子集,示例如下:

public class ArrayCopyOfExample {
    public static void main(String[] args) {
        int[] sourceArray = {1, 2, 3, 4, 5};

        int[] copiedArray = Arrays.copyOf(sourceArray, 3);

        System.out.println("Source Array: " + Arrays.toString(sourceArray));
        System.out.println("Copied Array: " + Arrays.toString(copiedArray));
    }
}

输出结果:

Source Array: [1, 2, 3, 4, 5]
Copied Array: [1, 2, 3]

4. 使用copyOfRange()方法

使用copyOfRange()方法可以复制原数组的一个子集,示例如下:

public class ArrayCopyOfRangeExample {
    public static void main(String[] args) {
        int[] sourceArray = {1, 2, 3, 4, 5};

        int[] copiedArray = Arrays.copyOfRange(sourceArray, 1, 4);

        System.out.println("Source Array: " + Arrays.toString(sourceArray));
        System.out.println("Copied Array: " + Arrays.toString(copiedArray));
    }
}

输出结果:

Source Array: [1, 2, 3, 4, 5]
Copied Array: [2, 3, 4]

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java复制(拷贝)数组的4种方法:arraycopy()方法、clone() 方法、copyOf()和copyOfRan - Python技术站

(0)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • Java中BigInteger类的使用方法详解(全网最新)

    Java中BigInteger类的使用方法详解 简介 在 Java 中对于 数值类型 的定义都是有范围的,而当我们需要用到超出这个范围的大整数时,就需要 BigInteger 类了。BigInteger 类属于 java.math 包,可以让我们处理任意长度的整数。 基本使用 1. 创建 BigInteger 对象 我们可以直接使用不同的构造函数或者将字符串…

    Java 2023年5月26日
    00
  • java开发SSM框架具有rest风格的SpringMVC

    Java开发SSM框架具有REST风格的SpringMVC 在 Java 开发中,SSM 框架是一种常用的 Web 开发框架,它由 Spring、SpringMVC 和 MyBatis 三个框架组成。其中,SpringMVC 是用于处理 Web 请求的框架,支持 REST 风格的 Web 服务。本文将详细讲解如何在 SSM 框架中使用 SpringMVC 实…

    Java 2023年5月18日
    00
  • JSP实现登录功能之添加验证码

    JSP实现登录功能之添加验证码的完整攻略可以分为以下几步: 1. 引入验证码依赖库 首先需要引入验证码相关的依赖库,常用的验证码依赖库有Kaptcha和Google的ReCaptcha。 以Kaptcha为例,需要在项目的pom.xml文件中添加以下依赖: <dependency> <groupId>com.github.penggl…

    Java 2023年6月15日
    00
  • SpringBoot详解如何进行整合Druid数据源

    接下来我将为您讲解“SpringBoot如何整合Druid数据源”的完整攻略。 1. 添加Druid依赖 首先,我们需要在pom.xml中添加Druid的依赖: <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-s…

    Java 2023年5月20日
    00
  • JNI语言基本知识

    JNI(Java Native Interface)是Java虚拟机提供的一个接口,允许Java程序调用本地C/C++方法或者本地C/C++程序调用Java方法。在进行JNI开发时,需要了解JNI语言的一些基本知识,下面是详细攻略: JNI语言基本知识 1. JNI开发环境搭建 在进行JNI开发前,需要安装C/C++ 编译器和Java开发工具包(JDK)。同…

    Java 2023年5月26日
    00
  • 一篇超详细的Spring Boot对jdbc支持的文章

    下面是我对这个主题的完整攻略: 一、简介 在介绍 Spring Boot 对 JDBC 支持的同时,我们需要先了解 JDBC 是什么。JDBC (Java DataBase Connectivity) 是 Java 语言中操作关系型数据库的 API。Spring Boot 建立在 Spring 框架的基础之上,因此 Spring Boot 是通过 Sprin…

    Java 2023年5月20日
    00
  • 利用Java将2019拆分成三个素数平方和的方法实例

    下面是详细的攻略: 1. 前置知识 在理解“将2019拆分成三个素数平方和”的方法之前,需要掌握以下基本知识: 素数:一个大于1的数,如果仅能被1和它本身整除,则称之为素数。例如:2、3、5、7、11、13等。 平方和:多个数平方后的和。 2. 解法概述 根据题目要求,需要将数字2019拆分成三个素数的平方和。由于2019是一个奇数,所以其中至少一个素数必须…

    Java 2023年5月23日
    00
  • 基于JDBC封装的BaseDao(实例代码)

    基于JDBC封装的BaseDao可以使得我们在操作关系型数据库时更加方便、快捷。下面我将详细讲解BaseDao的使用攻略。 一、什么是BaseDao BaseDao是基于JDBC进行封装的通用数据访问层,提供了基本的CURD方法以便我们进行数据操作。在使用BaseDao的同时,我们也可以轻松地进行扩展和定制,满足复杂查询和特殊需求。 二、BaseDao类的代…

    Java 2023年6月16日
    00
合作推广
合作推广
分享本页
返回顶部