Java數組初始化需要指定數組容量,但是在許多情況下需要動態擴充容量。有兩種方法可以實現:1.采用ArrayList類數組,它可以在需要時自動擴容;2.采用System.arraycopy方法實現,其聲明為:araycopy(Object src,int srcPos,Object dest,int destPos, int length) 寫個代碼就可明白了,示例如下:
import java.util.*; class Test { public static void main(String[] args) { int incre=2; //容量增加量 int[] a={1,2,3,4}; int[] b=new int[a.length+incre];//新數組 System.arraycopy(a, 0, b, 0, a.length);//將a數組內容復制新數組b b[4]=5;//b數組新增元素 b[5]=6; a=b;//改變引用 System.out.println("擴容后數組a容量為為:"+a.length+" 數組a內容:"); for(int i:a) System.out.print(i+" "); } }
代碼並沒有真正增加原數組a的容量,只是將a內容復制到新的大數組,然后讓a重新引用大數組。由於Java數組存貯在堆中,原a數組無需釋放,會被自動回收。