在Java语言中,数组长度一旦确定不能改变,数组慢的话需要扩容。
* Java语言中对数组的扩容是:
先建立一个大容量的数组,然后将小容量中的数据一个一个拷贝到大数组当中。
以下代码加深理解:
public class Test5 {
public static void main(String[] args) {
int[] src = {1,4,22,3,5,5,6,32,3};
int[] det = new int[20];
System.arraycopy(src,2,det,7,5);
for(int i = 0;i < det.length;i++){
System.out.print(det[i]);
}
System.out.println("\n");
Object[] objs1 = {new Object(), new Object(), new Object()};
Object[] objs2 = new Object[20];
System.arraycopy(objs1,0,objs2,1,2);
for(int i = 0;i < objs2.length;i++){
System.out.print(objs2[i] + " ");
}
}
}
输出结果为:
注:数组扩容效率较低,因此尽可能少的进行数组的拷贝,可以首先进行预估,减少数组的扩容次数,提供效率。