Java中数组的5种拷贝方法

发布于:2022-07-24 ⋅ 阅读:(311) ⋅ 点赞:(0)

目录

1、for循环

示例代码:

2、调用clone()方法

示例代码:

3、Arrays类中的Arrays.copyOf()方法

 示例代码:

4、copyOfRange()方法

示例代码:

5、System.arraycopy()方法

示例代码:


1、for循环

for循环拷贝是最简单直观的方法,循环访问当前数组的每一个元素,并复制到新数组的相应下标。

示例代码:

运行结果:

 

2、调用clone()方法

该方法是类Object类中的方法;使用clone方法进行拷贝时,是将arr中的所有元素都拷贝下来,不可以挑选。 clone() 方法的返回值是 Object 类型,要使用强制类型转换为适当的类型。

示例代码:

 运行结果:

3、Arrays类中的Arrays.copyOf()方法

该方法是整体拷贝。

 int [] original:将要拷贝的原数组
int newLength:新数组的长度;可以扩容到原数组长度的2倍

使用这种方法复制数组时,默认从原数组第一个元素(下标为 0)开始复制,新数组的长度将为 newlength。如果新数组长度 length 大于原数组长度,则新数组中采用默认值0进行填充;如果 newlength 小于原数组长度,则复制到第 length 个元素(下标为 length-1)截止。

这个方法底层调用了System.arraycopy方法:

 示例代码:

 运行结果:

4、copyOfRange()方法

该方法是Arrays 类中的 CopyOfRange() 方法,该方法用于拷贝某个范围

int[] original:将要拷贝的原数组
int from:拷贝数组的起始下标 ,下标值必须在 0 到原数组长度之间;

int to:拷贝数组的终止下标,且终止下标必须大于等于起始下标,也可以大于 arr.length,如果大于 arr.length,则新数组中剩余的空位置用默认值0进行填充。

示例代码:

 运行结果:

5、System.arraycopy()方法

该方法位于System类中,语法形式如下:

使用此方法复制数组时,length+srcPos必须小于等于原数组的长度,同时 length+destPos 必须小于等于新数组的长度。

示例代码:

 运行结果:

 

本文含有隐藏内容,请 开通VIP 后查看