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

yizhihongxing

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日

相关文章

  • Java定时器Timer简述

    Java定时器(Timer)是Java提供的一种机制,用来执行定时任务。它允许你在一个特定的时间间隔内反复地,或者仅仅是一次性地,执行某个代码段。在本文中,我们将详细讲解Java定时器的使用,包括创建Timer对象、添加任务、设定任务执行间隔等。 创建Timer对象 首先,我们需要创建一个定时器Timer对象。可以使用如下代码来创建: Timer timer…

    Java 2023年6月1日
    00
  • IDEA Maven Mybatis generator 自动生成代码(实例讲解)

    下面是详细讲解“IDEA Maven Mybatis generator 自动生成代码(实例讲解)”的完整攻略。 简介 Maven Mybatis generator 是一种可以帮助开发者自动生成 Mybatis 相关代码的工具。它可以根据数据库表的结构,自动生成实体类、Mapper 接口以及 XML Mapper 文件,大大提高了代码编写的效率。 本攻略将…

    Java 2023年5月19日
    00
  • Apache Shiro 使用手册(三) Shiro授权

    Shiro授权是一个非常重要的部分,它定义了谁可以访问应用程序中的哪些资源。本文将介绍如何使用Shiro进行授权。 什么是Shiro授权? Shiro授权是指确定哪些用户可以访问应用程序中的哪些资源。一般来说,授权是在通过身份验证后给定的,如果身份验证已经将用户与特定角色相关联,则可以使用角色来进行授权。此外,还可以使用基于权限的授权方式。 Shiro授权处…

    Java 2023年6月15日
    00
  • java在pdf中生成表格的方法

    生成表格是PDF文档中常见的需求之一,Java中有很多第三方库可以实现这一功能。以下是使用iText库生成表格的步骤: 第一步:导入iText库 在使用iText库之前,需要在项目中导入iText的jar文件。可以通过Maven等构建工具,或手动下载并导入jar文件。 第二步:创建PDF文档 可以使用iText库创建PDF文档,如下所示: Document …

    Java 2023年5月20日
    00
  • Java创建和启动线程的两种方式实例分析

    Java创建和启动线程的两种方式实例分析 在 Java 中,线程是并发编程的核心概念之一。线程的创建和启动是任何并发应用的首要任务之一。Java 提供了两种方式来创建和启动线程,分别是继承 Thread 类和实现 Runnable 接口。 继承 Thread 类 继承 Thread 类是最常用的创建线程的方式,实现比较简单。我们需要继承 Thread 类,重…

    Java 2023年5月19日
    00
  • 用javascript制作qq注册动态页面

    下面是用 JavaScript 制作 QQ 注册动态页面的攻略: 1. 前置知识 在进行动态页面制作前,需要掌握以下一些前置知识: HTML:前端页面标记语言,用于编写网页基本结构和内容; CSS:前端页面样式表语言,用于美化网页界面; JavaScript:前端脚本语言,用于实现网页交互和动画效果; DOM:文档对象模型,即用 JavaScript 操作页…

    Java 2023年6月15日
    00
  • Java编程简单应用

    Java编程简单应用攻略 如果你想学习Java编程,以下是一些简单的步骤和示例说明,可帮助你入门。 安装Java 要开始编写Java应用程序,你需要安装Java开发工具包(Java Development Kit, JDK)。你可以在Oracle官方网站下载最新版本的JDK。 下载完成后,按照安装向导完成JDK的安装。安装完成后,通过在命令行中输入以下命令来…

    Java 2023年5月19日
    00
  • Spring中AOP概念与两种动态代理模式原理详解

    Spring中AOP概念与两种动态代理模式原理详解 什么是AOP AOP(Aspect Oriented Programming),面向切面编程,是OOP(Object Oriented Programming)的一个补充,它利用一种称为”切面(Aspect)”的技术,将一些与业务无关,却为业务模块所共同调用的功能,如日志记录、性能统计、安全控制、事务处理等…

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