复制数组的几种方式

简介: 复制数组的几种方式

遍历复制

通过遍历数组,遍历的过程中把原数组中的数据复制到新的数组中

System.arraycopy

源码:


 * @param      src      the source array. //原数组
 * @param      srcPos   starting position in the source array. //在原数组中开始复制的位置
 * @param      dest     the destination array. //目标数组
 * @param      destPos  starting position in the destination data.//目标数组中开始的位置
 * @param      length   the number of array elements to be copied.//要复制的数组元素的数量
public static native void arraycopy(Object src,  int  srcPos,
                                        Object dest, int destPos,
                                        int length);


实例


        int[] arr = {1,2,3,4,5,6,7};
        int[] arr1 = new int[7];
        System.out.println(Arrays.toString(arr1));
        System.arraycopy(arr,0,arr1,0,7);
        System.out.println(Arrays.toString(arr1));


输出:


[0, 0, 0, 0, 0, 0, 0]
[1, 2, 3, 4, 5, 6, 7]



Arrays.copyOf


源码:


需要注意的是该方法是一个重载的方法,第一个参数为要复制的数组,第二个参数系数组的长度


public static int[] copyOf(int[] original, int newLength)



案例

 

        int[] arr = {1,2,3,4,5,6,7};
        int[] arr2 = Arrays.copyOf(arr,arr.length);
        System.out.println(Arrays.toString(arr2));


输出:


[1, 2, 3, 4, 5, 6, 7]
• 1


clone


通过源码可以看到该方法也是一个native方法,但其返回值为Object,因此赋值时会发生强转。其效率并不高


protected native Object clone() throws CloneNotSupportedException;



案例


int[] arr = {1,2,3,4,5,6,7};
        int[] arr3 = arr.clone();
        System.out.println(Arrays.toString(arr3));


输出:


[1, 2, 3, 4, 5, 6, 7]
• 1


在这四种方法中System.arraycopy是原生的,所以效率也是更高的。

相关文章
|
2月前
将一个数组复制给另外一个数组
【10月更文挑战第29天】将一个数组复制给另外一个数组。
27 2
|
4月前
|
JavaScript 前端开发
数组嵌套数组去重
在JavaScript中对嵌套数组进行去重的方法,提供了一个具体的函数实现。
20 1
数组嵌套数组去重
|
8月前
|
JavaScript 前端开发 索引
数组相关方法
数组相关方法
43 0
数组去重-数组对象去重
数组去重-数组对象去重
56 0
|
Cloud Native Go C++
你以为传切片就是传引用了吗?
你以为传切片就是传引用了吗?
|
前端开发
数组常用的几个方法
数组常用的几个方法
53 0
数组的相关方法
数组的相关方法
65 0
二维数组的初始化,下标,遍历,及数组间的赋值
下标: 行下标与列下标都是从0开始。 例如:int a[3][2] = { { 1,2 } , { 3,4 } , { 5,6 } }; 行下标:0 1 2 列下标:0 1 元素表现为: a [0][0] a [0][1] a [1][0] a [1][1] a [2][0] a [2][1] 另一个角度:
317 0
两种基础的数组排序方法。
两种基础的数组排序方法。
72 0