论坛首页 入门技术论坛

不用循环Copy数组的方法

浏览 3083 次
该帖已经被评为新手帖
作者 正文
   发表时间:2011-11-17  

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++;
		}
		
	}
 
   发表时间:2011-11-18  
楼主,这个方法在刚接触java的时候就应该会用了
0 请登录后投票
   发表时间:2011-12-26  
在字符串指定位置插入另一个字符串
String temp = src.substring(0, position)+insert+src.substring(position,l1);
0 请登录后投票
   发表时间:2012-04-09  
clone() 也是一个不错的想法啊
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics