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日

相关文章

  • Java Spring框架简介与Spring IOC详解

    Java Spring框架简介 Spring是一个轻量级的Java框架,用于构建企业级应用程序。它提供了一系列的模块,包括Spring Core、Spring MVC、Spring Data、Spring Security等,可以帮助开发人员快速构建高质量的应用程序。 Spring框架的主要特点包括: 轻量级:Spring框架本身非常轻量级,不需要依赖其他的…

    Java 2023年5月18日
    00
  • 一文搞懂Java顶层类之Object类的使用

    一文搞懂Java顶层类之Object类的使用 简介 在Java中,所有类都有一个共同的父类,即Object类。Object类定义了所有Java对象的通用行为。Object类中包含了许多常用的方法,例如toString()、equals()等。本文将详细讲解Object类的使用。 Object类的通用方法 toString() toString()方法用于返回…

    Java 2023年5月26日
    00
  • 把JS与CSS写在同一个文件里的书写方法

    将JS与CSS写在同一个文件中可以减少文件的请求次数,提高页面加载速度。以下是将JS与CSS写在同一个文件里的标准的Markdown格式的书写方法: 1. 在html文件中引入同一个文件 在HTML文件头部中,使用<script>标签引用JavaScript,使用<style>标签引用CSS,代码如下: <head> &l…

    Java 2023年6月15日
    00
  • java 实现局域网文件传输的实例

    下面是 “Java实现局域网文件传输的实例” 的完整攻略: 1. 确定文件传输协议 Java实现局域网文件传输,首先需要确定文件传输所采用的协议。常用的有TCP、UDP和HTTP等协议。 在这里我们采用TCP协议,因为TCP协议是可靠的传输协议,可以确保数据传输的正确性和完整性。 2. 客户端编写 客户端需要完成以下步骤:1. 创建Socket对象,指定服务…

    Java 2023年5月19日
    00
  • Java程序员转Android开发必读经验一份

    Java程序员转Android开发必读经验一份 为什么需要这份攻略? 很多从Java转到Android开发的程序员会感到困惑,因为两者虽然有很多相同之处,但是又存在一些不同。因此,为了帮助程序员更好地了解从Java到Android开发的过渡和必要的知识技能,我准备了这份攻略。在这份攻略中,我将会包含一些基本的概念和技能,帮助程序员更好地理解和运用Androi…

    Java 2023年5月26日
    00
  • 原来Java接口多实现还可以这样玩

    让我来详细讲解一下“原来Java接口多实现还可以这样玩”的完整攻略。在Java中,接口是一种特殊的类,它没有任何实现,只定义了一些方法的签名。Java中的一个类可以实现多个接口,而接口之间可以存在继承关系。这给我们带来了很多灵活的编程方式,下面是具体的攻略: 一、定义多个接口 首先我们需要定义多个接口,可以通过以下方式来定义两个接口。 public inte…

    Java 2023年5月18日
    00
  • JAVA module-info.java文件详解

    JAVA Module 是 JDK 9 之后推出的新特性,可以用来管理和组织 Java 应用程序的代码。在使用 Java module 的时候,需要用到 module-info.java 文件来声明模块的依赖和公共 API 等信息。本文将详细讲解 JAVA module-info.java 文件的相关知识,帮助读者了解如何使用该功能。 1. module-i…

    Java 2023年5月19日
    00
  • 如何优雅的处理异常

    作者:京东零售  秦浩然 一、什么是异常 Java 语言按照错误严重性,从 throwale 根类衍生出 Error 和 Exception 两大派系。 Error(错误): 程序在执行过程中所遇到的硬件或操作系统的错误。错误对程序而言是致命的,将导致程序无法运行。常见的错误有内存溢出,jvm 虚拟机自身的非正常运行,calss 文件没有主方法。程序本生是不…

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