Live2D
复制代码

04-数组的扩容和拷贝

数组的扩容和拷贝

package e数组的扩容与拷贝;

/**
 * 			关于一维数组的扩容与拷贝:
 * 			在Java开发中,数组的长度一旦被确定就无法更改,当数组满了时还想存放更多数据就必须进行扩容
 * 			扩容的方式是:
 * 						新建一个更大容量的数组,然后将小容量数组中的数据一个一个的拷贝到大数组中。
 * 			得出一个结论:
 * 						数组扩容效率较低。原因是拷贝的问题,所以在开发中尽可能少的进行数组的拷贝
 * 			建议是在创建数组时预估所需数组的最佳长度,减少扩容次数以提高效率。
 * 
 * 			Java中数组的拷贝方式:
 * 								调用System类中的arraycopy()方法进行拷贝,该方法中有五个参数,如下:
 * 								System.arraycopy(src, srcPos, dest, destPos, length);
 * 								src :表示被拷贝数组源
 * 								srcPos:表示所选择的被拷贝数组的初始下标
 * 								dest:表示要拷贝到的目标数组
 * 								destPos:表示要拷贝到的目标数组起始下标
 * 								length:表示要拷贝的数据长度
 *
 */

public class ArrayTest {
	
	public static void main(String[] args) {
		
		//创建一个被拷贝数组
		int[] a1 = {12,45,665,48,45,99,88,99,65};
		//遍历该数组
		for (int i = 0; i < a1.length; i++) {
			int j = a1[i];
			System.out.println(j);
		}
		System.out.println(a1);//[I@ee7d9f1
		System.out.println("================================>");
		
		//创建一个拷贝的目标数组
		int[] a2 = new int[14];
		//用System.arraycopy();进行拷贝
		System.arraycopy(a1, 2, a2, 5, 7);
		
		/*代码合并时,但是不太好,因为后面还需要该数组,放进一个变量好调用
		System.arraycopy(a1, 2, new int[14], 5, 7);
		*/
		
		//遍历该数组
		for (int i = 0; i < a2.length; i++) {
			int j = a2[i];
			System.out.println("目标数组中 a["+i+"]= "+j);
		}
		
		//在被拷贝数组与目标数组类型相同的情况下,其数据元素是引用数据类型也可以拷贝
	}

}

posted @ 2021-07-24 18:55  Milen-jie  阅读(111)  评论(0编辑  收藏  举报