我想知道是否有一種方法來創建基於可變數量的Java數組。所以如果我需要創建10個數組,一個循環會產生10個(全部按順序命名)。但如果我不需要10個數組,循環會創建並根據需要創建多個循環。有沒有一種方法可以使用java中的循環創建可變數量的數組?
我設想是這樣的:
for(i=0 up to i=imax)
create arrayi
其中i爲變量的for循環。
如果IMAX設置爲3,將產生:陣列0,數組1,數組2,ARRAY3
感謝。
我想知道是否有一種方法來創建基於可變數量的Java數組。所以如果我需要創建10個數組,一個循環會產生10個(全部按順序命名)。但如果我不需要10個數組,循環會創建並根據需要創建多個循環。有沒有一種方法可以使用java中的循環創建可變數量的數組?
我設想是這樣的:
for(i=0 up to i=imax)
create arrayi
其中i爲變量的for循環。
如果IMAX設置爲3,將產生:陣列0,數組1,數組2,ARRAY3
感謝。
是的;你可以創建一個數組數組。比方說,你想要的int
陣列:
int numberOfArrays = 10;
int[][] arrays = new int[numberOfArrays][];
for (int i = 0; i < numberOfArrays; i++)
arrays[i] = new int[x]; // Where x is the size you want array i to be
但是,您可以不動態創建變量稱爲array0
,array1
,等等。對於多維數組,不需要這樣的變量集合,因爲您可以寫arrays[0]
,arrays[1]
;這也更加靈活,因爲您可以使用arrays[i]
索引到數組集合,如果您有array0
,array1
等,則無法執行此操作。
沒有機會做到這一點,你必須採取二維陣列方法...
Java不允許這種元編程。你不能以編程方式聲明變量。
作爲@Aasmund寫道,你可以做的是聲明一個數組來保存你的數組。
爲了您的具體問題,這是結果想什麼:
String[][] array = new String[IMAX][];
for (int i = 0; i < array.length; ++i) {
array[i] = createArray(...);
}
// cannot use 'array2', but something close:
String[] contents = array[2];
請準確應該是什麼這些陣列應包含和有多大。 – Alp 2011-06-03 21:33:13