Java 数组常用方法

Java中System.arraycopy()的定义如下,没有返回值。

arraycopy(Object src,  int  srcPos,Object dest, int destPos,int length);

它是一个静态本地方法,由虚拟机实现,其参数解释如下:

序号参数解释
1src原数组
2srcPos原数组位置,即数组的下标
3dest目标数组
4destPos目标数组接收起始位置,即数组的小标
5length被复制数组的长度

从上面的参数可以得知,该函数的作用是:复制src数组到dest数组。

看一个例子:

int []a = {1,2,3};
int []b = {4,5,6};
int []c = new int [a.length+b.length];
System.arraycopy(a, 0, c, 0, a.length);//a复制给c,从位置0开始,复制的长度是a.length
System.arraycopy(b, 0, c, a.length, b.length);//b赋值给c,从a.length下标开始,复制的长度是b.length
for (int i = 0; i < c.length; i++) {
	System.out.println(c[i]);
}

测试一下

输出:

1
2
3
4
5
6

 上面例子的过程如下:

创建3个数组a,b和c,其中是c的长度是a,b之和。

然后使用System.arraycopy函数两步复制。

  1. a复制给c,从位置0开始,复制的长度是a.length
  2. b赋值给c,从a.length下标开始,复制的长度是b.length

最后得出c的数组为a和b的合集。