質問: 一度に10個のArrayListを連番で作成したいのですが、 一つ一つ宣言していくのを面倒に感じたため、ループで処理できないかと思い質問させて頂きました。 よろしくお願いします。 ### 行いたいこと これをループ処理で実装したいです。 ``` ArrayList a0 =new ArrayList(); ArrayList a1 =new ArrayList(); ArrayList a2 =new ArrayList(); //...略 ArrayList a9 =new ArrayList(); ``` ### 試したこと 調べても配列の中を弄るようなループしか出て来なかったため、 パッと思いついた的外れな方法しか試せていません。すみません。 この方法では生み出せませんでした...。 ``` for(int i =0;i<10;i++){ ArrayList ai =new ArrayList(); } ```
回答: Javaでは基本的に変数名に変数をつかうようなことはできません。 やる方法はあるにはあるようですが、別途ライブラリを使う必要があったはずです。 配列を複数使うのであれば、連想配列や多次元配列(今回の場合2次元)を使うのがいいのではないでしょうか。 動的配列の中に動的配列を突っ込んでも、ループ処理でLength分回せば中身を取り出せますし、 取り出す配列が決まっているのであれば、直接添え字を指定して中身を取り出せばいいかと思います。 質問者さんの配列名が似た名前のものなので、勝手に似た役割を持っていると考えて上述の提案をしましたが、 それぞれの配列で役割が明確に違うのであれば、マジックナンバーやコードの難読化を防ぐために、 明確に配列名を振る方がメンテナンス性はよいかと思います。