数组扩容 在java开发中,数组长度一旦确定不可变,那么数组满了怎么办? 数组满了,需要扩容。 java中对数组的扩容是: 先新建一个大的容量的数组,然后将小容量的数组中的数据一个一个拷贝到大数组中去。 数组扩容效率较低,因为涉及到拷贝问题,所以以后的开发中注意:尽可能少的进行数组的扩容。
基本数据类型拷贝
public class ArrayTest { public static void main(String[] args) { /** * 将拷贝源拷到目标数组中 */ //拷贝源 int [] arr={1,11,22,3,4}; //拷贝目标 int [] dest= new int [20]; //1.源 2.起始位置3.目标4.目标的起始位置5.长度 System.arraycopy(arr,0,arr,0,arr.length); for (int i = 0; i <arr.length ; i++) { System.out.println(arr[i]); } }}引用数据类型拷贝
public class ArrayTest { public static void main(String[] args) { /** * 将拷贝源拷到目标数组中 */ //拷贝源 String [] str={"java","mysql","html"}; //拷贝到目标 String [] newStr= new String[20]; System.arraycopy(str,0,newStr,0,str.length); for (int i = 0; i <str.length ; i++) { System.out.println(str[i]); } }}Object对象拷贝
public class ArrayTest { public static void main(String[] args) { /** * 将拷贝源拷到目标数组中 */ //拷贝源 Object[] o = {new Object(), new Object(), new Object()}; //目标 Object[] o1 = new Object[20]; System.arraycopy(o, 0, o, 0, o.length); for (int i = 0; i < o.length; i++) { System.out.println(o[i]); } } }