System.arraycopy()实现数组之间的复制

19 篇文章 2 订阅
5 篇文章 0 订阅

System提供了一个静态方法arraycopy(),用来实现数组之间的复制。其函数原型是:

public static void arraycopy (Object src, int srcPos, Object dest, int destPos, int length)

src:源数组;
srcPos:源数组要复制的起始位置;
dest:目的数组;
destPos:目的数组放置的起始位置;
length:复制的长度。

注意:src and dest都必须是同类型或者可以进行转换类型的数组.

Example:

有两个数组,array1、array2 实现将array2中的数据复制给array1

public class test_1 {
    public static void main(String[] args) {

        int[] array1 = {1,2,3,4,5};
        int[] array2 = {6,7,8,9,10};

        System.arraycopy(array2, 0, array1, 0, 5);
        for (int i = 0; i < 5; i ++)
            System.out.println(array1[i]);
    }
}

Output:
6
7
8
9
10

arraycopy 方法也可以实现自己复制自己的数据

public class test_1 {
    public static void main(String[] args) {

        int[] array1 = {1,2,3,4,5};
        System.arraycopy(array1, 0, array1, 3, 2);
        for (int i = 0; i < 5; i ++)
            System.out.println(array1[i]);
    }
}
Output:
1
2
3
1
2

实现过程:先生成一个长度为length的临时数组,将array1数组中srcPos到srcPos+length-1之间的数据拷贝到临时数组中,再执行System.arraycopy(临时数组, 0, array1, 3, 2)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值