arraycopy(Object src, int srcPos,Object dest, int destPos,int length);
这是在看源代码的时候,看到方法。简单的说就是src是源数组。dest是目标数组。srcPos,和destPos的变量是起始位置,然后length是长度。具体可以看调用。
这个方法是一个native的方法。
然后我想了一个在数组中插入的方法。可以不用循环。
/**
* 主要作用目的是让数组能够完成插入的操作。
* 比方说长度为10的char数组,在位置5,插入一个长度为2的数组,产生一个新的数组,长度为12。
*/
@Test
public void insertChar(){
String src ="abcdefghjk";
String insert = "xy";
char[] srcArray = src.toCharArray();
char[] desArray = new char[12];
char[] insertArray = insert.toCharArray();
int position = 5;
//复制Position之前的
System.arraycopy(srcArray, 0, desArray, 0, position);
System.arraycopy(insertArray, 0, desArray, position, insert.length());
System.arraycopy(srcArray, position, desArray, position + insert.length(),src.length()- position);
logger.info("des array size:"+srcArray.length);
logger.info("des array:"+srcArray.toString());
int i = 1;
for(char c:desArray){
logger.info(i+" char:"+c);
i++;
}
}