java arraycopy方法_Java System.arrayCopy()方法

System提供了一个静态方法arraycopy(),我们可以使用它来实现数组之间的复制。

其函数原型是:

/**

* Copies an array from the specified source array, beginning at the

* specified position, to the specified position of the destination array.

* A subsequence of array components are copied from the source

* array referenced by src to the destination array

* referenced by dest. The number of components copied is

* equal to the length argument. The components at

* positions srcPos through

* srcPos+length-1 in the source array are copied into

* positions destPos through

* destPos+length-1, respectively, of the destination

* array.

*

* If the src and dest arguments refer to the

* same array object, then the copying is performed as if the

* components at positions srcPos through

* srcPos+length-1 were first copied to a temporary

* array with length components and then the contents of

* the temporary array were copied into positions

* destPos through destPos+length-1 of the

* destination array.

*

* If dest is null, then a

* NullPointerException is thrown.

*

* If src is null, then a

* NullPointerException is thrown and the destination

* array is not modified.

*

* Otherwise, if any of the following is true, an

* ArrayStoreException is thrown and the destination is

* not modified:

*

*

The src argument refers to an object that is not an

* array.

*

The dest argument refers to an object that is not an

* array.

*

The src argument and dest argument refer

* to arrays whose component types are different primitive types.

*

The src argument refers to an array with a primitive

* component type and the dest argument refers to an array

* with a reference component type.

*

The src argument refers to an array with a reference

* component type and the dest argument refers to an array

* with a primitive component type.

*

*

* Otherwise, if any of the following is true, an

* IndexOutOfBoundsException is

* thrown and the destination is not modified:

*

*

The srcPos argument is negative.

*

The destPos argument is negative.

*

The length argument is negative.

*

srcPos+length is greater than

* src.length, the length of the source array.

*

destPos+length is greater than

* dest.length, the length of the destination array.

*

*

* Otherwise, if any actual component of the source array from

* position srcPos through

* srcPos+length-1 cannot be converted to the component

* type of the destination array by assignment conversion, an

* ArrayStoreException is thrown. In this case, let

* k be the smallest nonnegative integer less than

* length such that src[srcPos+k]

* cannot be converted to the component type of the destination

* array; when the exception is thrown, source array components from

* positions srcPos through

* srcPos+k-1

* will already have been copied to destination array positions

* destPos through

* destPos+k-1 and no other

* positions of the destination array will have been modified.

* (Because of the restrictions already itemized, this

* paragraph effectively applies only to the situation where both

* arrays have component types that are reference types.)

*

* @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.

* @exception IndexOutOfBoundsException if copying would cause

* access of data outside array bounds.

* @exception ArrayStoreException if an element in the src

* array could not be stored into the dest array

* because of a type mismatch.

* @exception NullPointerException if either src or

* dest is null.

*/

public static native void arraycopy(Object src, int srcPos,

Object dest, int destPos,

int length);

src:源数组;

srcPos:源数组要复制的起始位置;

dest:目的数组;

destPos:目的数组放置的起始位置;

length:复制的长度。

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值