不用循环Copy数组的方法

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++;
		}
		
	}
 

你可能感兴趣的:(copy)