[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异常