• ベストアンサー

配列名の異なる配列を一気に100個生成する方法はありますか?

配列名の異なる配列を一気に100個生成する方法はありますか? double[] a1 = new double[50] double[] a2 = new double[50]       ・       ・       ・ double[] a100 = new double[50]; といちいち100回宣言するのがめんどうなのでいい方法はないでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • salsberry
  • ベストアンサー率69% (495/711)
回答No.4

変数の宣言は一つ一つやるしかありませんが、new double[50]の代入はこんな書き方もできます。a1~a100がインスタンス変数の場合です。 import java.lang.reflect.*; public class A { public double[] a1, a2, a3, a4, a5, …, a100; public void m() { for (int i=1; i<=100; i++) { try { Field f = this.getClass().getField("a"+i); f.set(this, new double[50]); } catch (NoSuchFieldException e) { } catch (IllegalAccessException e) { } } } }

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.3

「名前が違う」以上, どうしても「100回の宣言」は必須. 配列だろうと配列でなかろうと同じこと.

全文を見る
すると、全ての回答が全文表示されます。
  • SaKaKashi
  • ベストアンサー率24% (755/3136)
回答No.2

ExcelのA1にa1を入力して、A1セルをクリックして右下でカーソルが+になったら、 左クリックして下に引っ張り、A100まで引っ張る。 B1に="double[] "&A1&" = new double[50];"を入力。 B1をコピーしてB2からB100に貼り付け。 できたB1からB100をコピーしてテキストエディタに貼り付け。

vcxsdfrew
質問者

補足

excelを使うと手間は省けますがプログラムの見た目的にはやっぱり100回宣言しないとだめなんですかね

全文を見る
すると、全ての回答が全文表示されます。
  • g_liar
  • ベストアンサー率52% (382/728)
回答No.1

二次元配列じゃダメなんでしょうか?

vcxsdfrew
質問者

補足

1次元配列でやりたいんです

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 2次元配列

    2次元配列は宣言して生成しますが配列名が異なる配列を例えば100個用意するにはいちいち宣言していたらすごいプログラム量になるので何かいい方法はないでしょうか?付け足しで指定した個数(例えば100個)分名前の異なる2次元配列を生成するには? java初心者なのでサンプルプログラムがあるとありがたいです。よろしくお願いします。

  • ActionScript3.0(アクションスクリプト3.0)でMovieClipインスタンスを配列で生成する方法

    よろしくお願いいたします。 アクションスクリプト3.0において、あるMovieClipクラスから複数のMovieClipインスタンスを作り、それぞれを独立して制御させたい時に、 インスタンスを生成する際、配列でしようとしたのですがエラーとなりうまくいきません。 var my_mc[i]:MovieClip = new MC(); 上記の宣言を繰り返し処理により複数インスタンス生成をしようと思っていました。 MovieClipインスタンスを配列で生成する場合は別の方法があるのでしょうか?それともそもそもできないのでしょうか? また、MovieClipインスタンスをそれぞれ独立して制御させたい場合、別の方法などありますでしょうか? 以上、間違った表現等あるかもしれませんが、よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • 配列が使えない

    double Rand[] = new double[5]; Rand[0] = 6.28; Rand[1] = 7.28; Rand[2] = 8.28; Rand[3] = 9.28; Rand[4] = 10.28; 以上のような配列の記述を含んだソースファイルをコンパイルすると ']'がありません といったメッセージが出てきてコンパイルエラーが出てきます。 ただし double Rand[] = {6.28,7.28,8.28,9.28,10.28}; といった宣言の仕方をするとコンパイルエラーが出てきません。 for文などを使いたいので最初のほうの方法で配列を使いたいのですがどうしたらよいのでしょうか。 Java初心者の私にぜひ教えてください。お願いします。

  • 多次元配列は配列の配列である

    Java勉強中なんですが、参考書を読んでいて「多次元配列は、実際には配列の配列である。つまり、2次元配列(array[][])がある場合、実際にはこれをarray[0]、array[1]、array[2]、といった1次元配列に配列として扱う事ができる。」と書いてあり、例題で、 double array[][] = new double[5][]; array[0] = new double[500]; array[0] = new double[400]; array[0] = new double[300]; array[0] = new double[200]; array[0] = new double[100]; と書いてありました。これについてのこれ以上の説明はなく、理解できなくて困っています。ご教授宜しくお願いいたします。

    • ベストアンサー
    • Java
  • ExcelVBAで配列に一気にデータを入れる

    かすかな記憶で申し訳ありませんが、変数をVariant型で宣言しておくと、","で区切られた文字列は、一気に配列として代入出来ると聞いた気がしています。色々と試してみたのですが、よくわかりません。よろしくお願いいたします。 Dim a as Variant dim myText as string myText = "月曜,火曜,水曜,木曜,金曜,土曜,日曜" のような感じで(実際のカンマで区切られた文字列は100個ぐらい要素があります)一気に代入して、aを配列として扱いたいのです。 よろしくお願いいたします。

  • newで個別に生成した配列にNULLを代入しても大丈夫か

    C++にて要素数が不定の配列のクラスをnewで生成します。 このとき、newで一度に全ての配列を生成するとメモリをかなり取るので、 指定された要素番号のみを生成したいのでダブルポインタにし、 全体を生成してから個別にクラスを生成することで、 思い通りの処理ができるようになりました。 (生成する番号は0→1→2みたいな順列ではないため) しかし、ここで1つ問題が発生しました。 まずは以下にそのソースを示します。 ----------------------------- class CHOGE {   int a; public:   CHOGE(){ a=999; }   void print(){ cout<<a<<endl; } }; ----------------------------- void main(){   CHOGE **p = new CHOGE*[3];   if( p[0] != NULL ){ // ←条件を通過してしまう     cout << "ほげ~" << endl; // ←表示される     //p[0]->print(); // ←当然エラー   }   p[0] = new CHOGE();   p[0]->print(); // ←OK   delete p[0];   p[0] = NULL;   delete [] p;   p = NULL; } ----------------------------- 上記は3個の要素の配列を生成してから、 個別に0番目の要素のインスタンスを生成しています。 しかし、上記main関数の3行目では、 インスタンスはまだ生成していなにもかかわらず NULLチェックを通り過ぎてしまいます。 そこで上記main関数の2行目に  for(int i=0; i<3; i++) p[i] = NULL; という処理を入れると期待通りに動いてくれるのですが、 どうも引っかかるといいますか、何かの情報を消してしまったり やってはいけないことをやってそうで、不安なのです・・・。 上記のようなとき、NULLを代入しても大丈夫なのでしょうか?

  • JAVAのNEW配列生成とガベージコレクション解放

    ある本に、IF文内での、JAVAの配列生成で、IF文のブロックを内で生成した配列が、ブロックを抜けた際の挙動が異なると書いてありました。 NEWを使わないで生成した配列では、解放されるが(例 int[] k = {10 , 20 , 30}; ) NEWを使って生成した配列(例 int[] hoge = new int {3}; )は メモリー内に残ってしまうということでしたが、多分その後 ガベージコレクションで解放されると思いますので問題はないのですが 両者とも、メモリー内に作成(用意)された同じような変数の箱を利用しているのに どうして挙動が異なるのでしょうか? NEWを使わないで生成した配列kは、例えばk[0]の中にアドレス参照でなく 10という値がそのまま入るのでしょうか? 分かりやすく教えていただけると助かります。 よろしくお願いいたします。

    • ベストアンサー
    • Java
  • 配列に関してです。

    Dim a(,) As Integer a= New Integer(,) {0,300,400,400,500,600,700,800}  {400,500,700,800,1000,1200,1300,1500}   {700,1000,1300,1600,2000,2000,2000,2000}   {1300,2000,2000,2000,2000,2000,2000,2000} ローカルレベルでこのように配列を宣言したのですが ・配列初期化子の次元が少なすぎます。 ・構文エラーです。 とエラーが出てしまいます。 この宣言、初期化の仕方のどこがおかしいのでしょうか?

  • excel vba 配列の一部 一気に書き出し

    Excel VBAの配列の一部分をワークシートのセルに一気に書き出す方法を教えてください。 Dim A(12000,100) as double があります。 この中の A(1 ~ 12000 , 10) を ワークシートの cells(11,3) へ一気に縦方向に書き出したいのですが(B11から縦方向)、やり方を教えていただけないでしょうか。 cellsとしているのは、あとで 11,3 などを変数で指定したいためです。 doubleでダメな場合は、variantでもOKです。 よろしくお願いします。

  • staticな有効範囲の配列の作り方(Java)

    ブロック内(ローカル)以外でも使える配列をつくるにはどうすればいいでしょうか? Javaは配列を宣言、生成する必要がありますが、同じ配列を(同じクラスの)複数のメソッドで使うたびに毎回宣言、生成しないほうがコスト削減になると思いましたので。 宣言、生成する位置、それぞれに何かキーワード(static?)をつけるのが条件と思われますがどうでしょうか。 今回はint型の要素数2の配列aを使います

    • ベストアンサー
    • Java