[Java技巧] 如何复制数组的一部分到另外一个数组?

[Java技巧] 如何复制数组的一部分到另外一个数组?


1.在矩阵运算、或者数组编程中,经常会遇到一些这样的问题:

如何把一个数组中指定范围的内容,不用循环复制到另外一个数组中的指定位置?

JAVA提供了一个API:System.arraycopy,会方便实现这一功能:

[例子]

数组A:[1,2,3,4,5]     长度为5的一个数组

数组B:[0,0,0,0,0,0,0,0,0,0]   长度为10的一个数组

现在调用System.arraycopy(),将数组A的部分内容拷贝到数组B从B[4]开始的地方

int[] A = {1,2,3,4,5};
		int[] B = new int[10];
		System.arraycopy(A, 0, B, 4, 5);
		for( int i=0; i<B.length; i++ )
		{
			System.out.print( B[i] + ", ");
		}

调用程序,会发现打印出复制后,B的内容为:

0, 0, 0, 0, 1, 2, 3, 4, 5, 0, 

[说明] 

System.arraycopy(src, srcPos, dest, destPos, length)
//src:要拷贝的源数组</span>
//srcPos:要源数组的起始位置,从0算起
//dest:要拷贝到的目的数组
//destPos:目的数组的起始位置
//length:需要拷贝的长度</p>

[注意事项]

要注意复制的长度,不要越界,超过原数组或目的数组的长度,都会报 out of index异常

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值