2011-06-03 15 views
2

可変量に基づいてJavaで配列を作成する方法があるのだろうかと思います。だから、もし私が10個の配列を作る必要があれば、ループは10個(すべて順番に名前が付けられます)になります。しかし、もし10個の配列を必要としなければ、ループが作成され、必要に応じて多くの配列が作成されます。Javaでループを使用して可変数の配列を作成する方法はありますか?

私はこのようなものを想定しています:私は、forループで変数をある

for(i=0 up to i=imax) 

create arrayi 

を。 IMAXが3に設定されている場合

それが生成します:ARRAY0、配列1、配列2、ARRAY3

感謝を。

+0

してください正確な彼らがどうあるべきか、これらの配列が含まれている必要がありますし、どのように大きな。 – Alp

答えて

7

はい、配列の配列を作成することができます。あなたが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 

しかし、あなたは動的ように、array0array1と呼ばれる変数を作成し、ないすることができます。多次元配列では、このような変数のコレクションは必要ありません。なぜなら、あなたはむしろarrays[0]arrays[1]と書くことができるからです。 array0,array1などがある場合には実行できないarrays[i]で配列コレクションにインデックスを付けることができるので、これはさらに柔軟性があります。

+0

ええ、欲しいソリューションに最も似ているのは、ハッシュマップ Voo

+1

Fantastic!これは間違いなく私が使っているものです。私はしばらくの間、この質問を頭の中でノックしていたが、あなたの実装ははるかに容易であり、より良く機能する。 – Andrew

0

これを行う機会はありません.2次元アレイアプローチをとる必要があります。

0

Javaでは、この種のメタプログラミングが許可されていません。プログラムで変数を宣言することはできません。

@Aasmundが書いているように、 doは配列を保持する配列を宣言しています。あなたの具体的な質問については

が、これは結果が希望するものである:

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]; 
関連する問題