Java复制(拷贝)数组的五种方法汇总

Java复制(拷贝)数组的五种方法汇总

一、使用for循环逐一复制

这是最基本的数组复制方法,适用于任何类型的数组。代码示例如下:

int[] arr1 = {1, 2, 3, 4, 5};
int[] arr2 = new int[arr1.length]; // 创建空数组,长度等于原数组

for (int i = 0; i < arr1.length; i++) {
    arr2[i] = arr1[i];
}

二、使用java.util.Arrays类的copyOf方法复制

java.util.Arrays类提供了一个copyOf方法,可以用于复制一维数组和二维数组。示例如下:

int[] arr1 = {1, 2, 3, 4, 5};
int[] arr2 = Arrays.copyOf(arr1, arr1.length);

三、使用java.util.Arrays类的copyOfRange方法复制

java.util.Arrays类的另一个方法是copyOfRange,它可以复制从指定位置开始到结束位置的一部分原数组。例如:

int[] arr1 = {1, 2, 3, 4, 5};
int[] arr2 = Arrays.copyOfRange(arr1, 0, 3);

以上代码将复制原数组arr1从位置0到位置3的元素(不包括第4个元素)到新数组arr2。

四、使用System.arraycopy复制

System.arraycopy方法是Java中用于复制数组的方法之一。以下是使用System.arraycopy方法的示例:

int[] arr1 = {1, 2, 3, 4, 5};
int[] arr2 = new int[arr1.length];

System.arraycopy(arr1, 0, arr2, 0, arr1.length);

五、使用Arrays.stream和toArray方法复制

这个方法适用于Java 8及以上版本。示例如下:

int[] arr1 = {1, 2, 3, 4, 5};
int[] arr2 = Arrays.stream(arr1).toArray();

示例说明

示例1:使用Arrays.copyOf方法

public class ArraysCopyOfDemo {
    public static void main(String[] args) {
        int[] arr1 = {1, 2, 3, 4, 5};
        int[] arr2 = Arrays.copyOf(arr1, 3);
        System.out.println("原数组内容:" + Arrays.toString(arr1));
        System.out.println("复制后数组内容:" + Arrays.toString(arr2));
    }
}

输出结果:

原数组内容:[1, 2, 3, 4, 5]
复制后数组内容:[1, 2, 3]

示例2:使用System.arraycopy方法

public class SystemArrayCopyDemo {
    public static void main(String[] args) {
        int[] arr1 = {1, 2, 3, 4, 5};
        int[] arr2 = new int[arr1.length];
        System.arraycopy(arr1, 2, arr2, 0, 3);
        System.out.println("原数组内容:" + Arrays.toString(arr1));
        System.out.println("复制后数组内容:" + Arrays.toString(arr2));
    }
}

输出结果:

原数组内容:[1, 2, 3, 4, 5]
复制后数组内容:[3, 4, 5, 0, 0]

总结

以上是Java中五种常见的数组复制方法,每种方法适用于不同的情况。在选择复制方法时,可以根据需求和所选版本的Java API文档,选择适合的方法。

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

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

相关文章

  • kafka生产者和消费者的javaAPI的示例代码

    以下是关于Kafka生产者和消费者JavaAPI的示例代码的完整攻略。 Kafka Kafka是一个分布式流处理平台,主要由以下组件构成: 生产者(Producer) 消费者(Consumer) 主题(Topic) 分区(Partition) 偏移量(Offset) Broker ZooKeeper Kafka的生产者和消费者JavaAPI提供了开发人员构建…

    Java 2023年5月19日
    00
  • springboot登陆页面图片验证码简单的web项目实现

    下面我来详细讲解“springboot登陆页面图片验证码简单的web项目实现”的完整攻略。 简介 本项目是一个基于Spring Boot框架的简单web项目,使用图片验证码来保护用户登录页面,防范恶意攻击和爆破。 实现步骤 第一步:新建Spring Boot项目 首先,我们需要新建一个Spring Boot项目,以便进行后续的开发。在创建项目时需要注意选择W…

    Java 2023年5月20日
    00
  • win2003 jsp运行环境架设心得(jdk+tomcat)

    Win2003 JSP运行环境架设心得 (JDK+Tomcat) 完整攻略 简介 本文将介绍在Windows Server 2003操作系统上架设JSP运行环境的过程,其中涉及到JDK和Tomcat的安装、环境配置等内容。教程中会引入两个示例来展示环境搭建的实际应用。 前置知识 在开始操作前,确保您已经掌握以下知识: Windows Server 2003操…

    Java 2023年5月19日
    00
  • Spring Data Jpa 复杂查询方式总结(多表关联及自定义分页)

    Spring Data JPA 复杂查询方式总结 Spring Data JPA 是 Spring 借鉴了 Hibernate 实现的一套 JPA 规范实现。Spring Data JPA 使得我们在使用 JPA 进行数据库操作时能够更加简单方便。 下面我们来讲解 Spring Data JPA 如何进行复杂查询,包括多表关联查询和自定义分页查询。 多表关联…

    Java 2023年5月20日
    00
  • Java struts2 validate用户登录校验功能实现

    下面是Java struts2 validate用户登录校验功能实现的完整攻略。 准备工作 确保本地安装了Java和Struts2框架 创建项目目录和基本的MVC架构 实现步骤 1. 创建登录表单和登录处理Action类 在jsp页面中创建登录表单,包括用户名和密码两个输入框。然后在后台Action类中编写处理登录请求的方法,通过接收表单中提交的参数,将其传…

    Java 2023年5月20日
    00
  • 为Java应用程序添加退出事件响应

    为Java应用程序添加退出事件响应可以通过以下步骤完成: 步骤一:创建一个ShutdownHook线程 在Java中,我们可以创建一个特殊的线程来处理应用程序退出时的清理工作,这个线程称为ShutdownHook线程。我们需要在应用程序启动时创建这个线程,并且在应用程序退出时执行它所要完成的清理工作。 可以使用以下代码创建一个ShutdownHook线程: …

    Java 2023年6月15日
    00
  • 用Eclipse 创建一个简单的web项目(图文教程)

    下面是详细的攻略: 步骤一:安装Eclipse 首先,在官网下载并安装Eclipse。安装成功后,打开Eclipse。 步骤二:创建一个新的动态Web项目 选择“File”-> “New” -> “Project”。 在新窗口中,展开“Web”选项卡,选择“Dynamic Web Project”。 输入你的项目名称并点击“Next”。 点击“T…

    Java 2023年5月20日
    00
  • java 之JNA中的Memory和Pointer的使用方法

    Java中JNA中的Memory和Pointer的使用方法 什么是JNA? JNA是Java Native Access的简称,它是一个Java库,用于调用Native代码。它通过使用Java的动态代理机制调用Native代码,支持Windows,Linux和Mac等操作系统,且完全无需编写任何C/C++代码。 为什么需要使用JNA? 在Java中无法直接调…

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