Java陣列動態增加容量
阿新 • • 發佈:2019-01-01
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陣列無需釋放,會被自動回收。
輸出如下: