java變長數組
『壹』 java中如何動態改變數組長度 動態數組 array
java中的數組一旦被定義長度是不允許修改長度的,如果題主希望實現類似的功能可以採用ArrayList。ArrayList的底層結構就是數組。當ArrayList實例化時會默認設置一個長度,當長度不夠用時會自動擴展現有長度的1/2.(假設初始數組長度為10,現在變成了15)
System.array(Object src,int srcPos,Object dest,int destPos,int length )能夠實現數組復制的功能。
假設有數組a(src),數組b(dest),我們希望把a數組中從下標為2(srcPos)長度為3(length)的元素復制到b的下標為4(destPos)開始的元素中。java代碼示例如下:
inta=[1,3,5,7,9];
intb=[2,4,6,8,0,2,4];
System.array(a,2,b,4,3);
//最終b的內容為[2,4,6,8,5,7,9];
但是如果注意API的話會發現array有幾個限制
1、a,b的元素類型必須相同(int和Integer這里也是需要區分的)
2、數組不能越界,也就是srcPos+length不能超過a的長度;desPos+length也不能超過b的長度,否則就會報數組越界的一場。這也說明了無法實現數組長度的動態擴展。
『貳』 java中數組的長度可以改變嗎
java中數組的長度不可以改變。
java中的數組的定義就是相同類型,固定長度的一組數據,一旦被初始化,長度不可更改。如果對需要用的數組的長度不確定,有兩種解決辦法:
第一種是在數組初始化的時候長度申請的足夠大,這樣做會造成內存空間的浪費,一般不推薦使用。
第二種是用java中提供的集合的方式存儲數據,如List,Set和Map類型的對象存儲數據,一方面這些類型的對象的長度都是動態增長的,另一方面這些類中提供了很多便於操作數據的方法,因此在對所需存儲數據的多少不確定的時候,第二種方法比第一種方法更優秀。