1. 程式人生 > >Java陣列動態增加容量

Java陣列動態增加容量

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陣列無需釋放,會被自動回收。

輸出如下: