Java中数组复制的三种方式你都会吗?
hello,大家好!今天给大家分享一个虽然很基础,但却很常用的技能点,那就是数组的复制。之所以要给大家分享这个知识点的原因有二,首先数组是我们常用的一种存储结构,经常需要把一个数组中的元素复制到另一个数组中;另外我们在阅读集合的底层源码时,比如ArrayList集合,它的底层就是数组。当集合扩容时,其中的一个过程就是进行数组的复制,如果我们对这个复制过程不理解,自然也就读不懂这个源码了。所以今天就给大家讲解数组的三种复制方式,希望今天的内容可以帮助大家巩固基础知识。
首先我们来看看第一种数组复制方式。
一. 第一种,遍历的过程中完成数组的复制
代码案例
第一种数组复制方式的案例代码如下:
运行结果如下
执行结果分析
这种复制方法最简单易懂,但每次复制的时候都需要进行遍历,比较繁琐。
接下来我们再来看第二种数组复制方式。
二. 第二种,调用Arrays类中的copyOf()方法
源码分析
通过阅读源码我们发现,Arrays类中对copyOf()方法进行了重载,也就是能够对各种类型的数组进行复制。
我们以案例中的整形数组为例,先阅读以下复制整形数组的源码
源码分析:
方法的参数1: original 是要复制的数组;
方法的参数2: newLength 是复制后的数组的长度,也可以理解为要复制几个元素,因为这个值是多少,新数组的长度就是多少;
方法的返回值: 就是新创建的复制之后的数组。
案例代码
先通过int[] copy = new int[newLength]; 创建了一个新的数组。然后调用System类的arraycopy方法完成的数组复制,后续会讲解System.arraycopy()方法。
执行结果
最后我们再来看第三种数组复制方式。
三. 第三种,直接调用System.arraycopy()方法
System.arraycopy()方法分析
我们先看一下这个System.arraycopy()方法的源码声明。
方法参数解析如下:
- 参数src: 要源数组,也就是要从这个数组里复制;
- 参数srcPos: 从源数组中复制元素的起始位置;
- 参数dest:目标数组,也就是复制到哪个数组中;
- 参数destPos:复制到目标数组的起始位置;
- 参数length: 要赋值的数组的元素个数。
执行结果
结果分析
这种方法的好处就是比较灵活,不必复制整个数组,可以自己定义从哪个元素开始复制,以及复制多少个元素。
现在你对Java中数组的复制方式了解了吗?如果你还有其他疑问,可以在评论区留言哦。
相关推荐HOT
更多>>如何添加Java环境变量?
要添加Java环境变量,可以按照以下步骤:并安装Java开发工具包(JDK)、找到Java安装路径、设置JAVA_HOME环境变量、添加Java可执行文件路径到PATH...详情>>
2023-05-04 11:00:56从零开始学Java之String字符串的编码
对很多小白来说,可能不明白什么是字符编码,也不知道为什么要有字符编码,所以先来给大家简要地介绍一下字符编码。详情>>
2023-05-04 10:21:02新手速来!几步带你掌握MyBatis Plus
Mybatis-Plus(简称MP)是一款Mybatis的增强工具,它是在Mybatis的基础上实现的简化开发工具。Mybatis-Plus给我们提供了开箱即用的CRUD操作、自动...详情>>
2023-04-28 10:57:09学习java需要什么基础?基础知识有哪些?
网络编程:了解基本的网络编程概念和协议,熟悉 Java 网络编程 API。建议在学习 Java 之前,先学习一些基础的编程语言,如 C 或 Python 等,这...详情>>
2023-04-28 10:41:14