Java数组拷贝
心皿月 人气:01、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 必须小于等于新数组的长度。
示例代码:
运行结果:
加载全部内容