• ベストアンサー

配列の要素追加・・・

プログラミングというものは結構やっていて最近Java・iアプリを作っているものです。 質問なんですが、プログラムが進行すると要素が増える~みたいなプログラムで ーーーーーーーーーー int[] a;//みたいな感じで起動。 ・・・ a[b]=0;//b番目の要素(int)をいきなり追加記述... ーーーーーーーーーー 上の様にするとエラーなようです。 配列の要素の追加について、あんまりいいサイトも見つからなかったので、教えてください。

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

iアプリで使えるかどうかは知らないのですけど、 あらかじめサイズの決まらない配列を使うなら Vector を使ったらどうでしょうか

shinsprint
質問者

お礼

遅れてすいません あれからいろいろ試してやりましたが 結局Vectorにしてやりました。 処理的には Vectorに要素を付け足していって 要素数だけループして intValueして演算して、書き換え。 条件に達したらその要素から取り除くという感じです。 なんか面倒くさいなぁー という感想を持ちました...

shinsprint
質問者

補足

回答ありがとうございます。 Vectorを使うと返ってくる値がintじゃないみたいで面倒なんです・・・

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

その他の回答 (2)

  • midomaru
  • ベストアンサー率14% (13/90)
回答No.3

int[] a ;みたいな感じで起動して、 a[b] = 0; でエラーになるのは当然です。 プログラムを結構やってらっしゃるみたいですが、 javaは初めての方でしょうか? iアプリを使ってるのならメモリも気にしないといけないと思います。 b番目の値をキーに、valueをString型で記述してみてはどうでしょう?確かにint型にcastしなくてはいけませんが、HashMapがベストだと思います。

shinsprint
質問者

お礼

回答ありがとうございました。 前はVisualBasicでゲーム要素の全くない変なプログラム作ってたんですが あるときゲームをつくろうと思ったのですが、VBの限界を悟り Java・iアプリに手を出してみました。 ゲームを作るのでランダムを多用するまで動的配列っていうのは未開拓な部分だったんです。

全文を見る
すると、全ての回答が全文表示されます。
noname#18558
noname#18558
回答No.2

動的な配列には、java.util.Listを参考にしてみて下さい。 Listで探せばいくつでもみつかるはずです。

参考URL:
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/util/List.html
shinsprint
質問者

お礼

ありがとうございました Vectorを使ってしまいましたが 回答いただいて、Listというものを知りました。 今後、使う部分がでてくるとおもいます。

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

関連するQ&A

  • Eclipse による Java プログラミングの配列について質問です

    Eclipse による Java プログラミングの配列について質問です。 下の二つの問題に対して、それぞれのソースコードを教えてください。よろしくお願いします。 1. int型配列aの要素の中で,正の値だけを順に配列bの要素に 代入して,その結果を表示するプログラムを作成しなさい. ※配列aの要素と配列bの要素をそれぞれ表示すること. (実行例) 配列a={5 -1 3 4 -2 7} 配列b={5 3 4 7} 2. int型配列dataの要素の中で,最大値と何番目の配列の要素が 最大値か表示するプログラムを作成しなさい. ※配列dataの要素も表示すること. (実行例) 配列data={31 41 59 26 53 58 37 97 93 23 84} 最大値は97です 最大値は7番目の配列の要素です

    • ベストアンサー
    • Java
  • char型配列要素として定義 他

    JAVAプログラミングとしては非常に基本的なことだと思うのですが、いくつかわからないことがあるので教えてください。 まず、0~3までの数字をchar型の配列要素として定義するために、 private static final char[] nch = {○○}; の○○の部分に記述しなければならないことは何ですか? また、繰り返し構文を使うのに、inputstrの文字数の回数だけ繰り返し・配列nchの要素数の回数だけ繰り返しをそれぞれ{int i = 0 ; ○○; i ++} ・ {int j = 0 ; ××; j++}と記述するのですが、○○、××の部分の記述内容はどうなるのでしょうか? 最後に、StringBufferで定義されたbfnをString型に変えて戻り値とするにはreturnの後にどのように記述すればよいのでしょうか? まだプログラミングを始めたばかりで応用がほとんどわからない状態です。回答よろしくお願いします。

    • ベストアンサー
    • Java
  • 配列の要素に同じ値をもたせないプログラムについて

    現在、JAVAの入門書にてプログラムの勉強中です。 その書籍に掲載のプログラムコードがどうしても意図する結果に なりません。入力間違いなどのミスはないか何回も見直しましたが、 どこも入力間違いは見当たりません。 何が原因か教えて頂けますでしょうか。 実行例がこのようになります。 数字は例なのでこの限りではありません。 要素数 : 7 a[0] = 7 a[1] = 5 a[2] = 1 a[3] = 2 a[4] = 9 a[5] = 6 a[6] = 3 プログラムコードが下記になります。 /*配列の全要素を1から10の乱数で埋め尽くす (すべての要素が重複しないようにする*/ 01: import java.util.Random; 02: import java.util.Scanner; 03: 04: class ArrayRandY { 05: 06: public static void main(String[] args) { 07: Random rand = new Random(); 08: Scanner stdIn = new Scanner(System.in); 09: 10: int n; //要素数 11: do { 12: System.out.print("要素数 : "); 13: n = stdIn.nextInt(); //要素数を読み込む 14: } while (n > 10); 15: int[] a = new int[n]; //配列を生成 16: 17: for (int i = 0; i < n; i++) { 18: int j = 0; 19: do { 20: a[i] = 1 + rand.nextInt(10); 21: for ( ; j < i; j++) 22: if (a[j] == a[i]) break; 23: } while (j < i;); 24: } 25: 26: for (int i = 0; i < n; i++) { 27: System.out.println("a[" + i + "] = " + a[i]); 28: } 29: } 30:} 以上です。 これを javac ArrayRandY.java → java ArrayRandY とやると、重複しない結果のときもありますが 重複する値が出てしまうときもあります。 著者のホームページの正誤表を見たのですが情報がありませんでした。 常にこのプログラムの配列の全要素を重複しないようにするには どうしたらよろしいでしょうか。 よろしくお願いいたします。 ちなみに、プログラムコードですが、入力画面ではインデントを 入力しているのですが確認画面ではなぜかインデントが表現 されてません。 大変見苦しいことお詫び申し上げます。

    • ベストアンサー
    • Java
  • 配列の要素追加について

    配列Aがあり、その配列に別の要素を加えた配列Bを作成するためにはどのようにすればよいのでしょうか? Aをコピーしたものに要素を一つ加えてと考えたのですが。。。 つまり char[] a = {'a', 'b', 'c'}; char ch = 'd'; とあったときに、aにchを加えて char[] b = {'a', 'b', 'c', 'd'}; を作成したいです。 よろしくお願い致します。

    • ベストアンサー
    • Java
  • 配列渡し後の要素数を知るには・・?

    main関数で定義した配列を他の関数で扱う場合にどうすればいいのかいまいちわかりません・・。 微妙に独学したのですが sizeofで要素数を調べたいのですがどうすればmain以外の関数内で要素数を調べる事ができるのでしょうか。私の書いたソースはこれです。 void dis(int *b){ int i, nx; nx = sizeof(b) / sizeof(b[0]); for(i=0;i<nx;i++){ printf("%d\n", *(b+i)); } } main(){ int a[5] = { 10, 20, 5, 1, -1 }; dis(a); return(0); } どうすればいいでしょうか・・・。どなたか教えていただければ光栄です。ご指導お願いします!

  • C#かJavaで、配列の中から別の配列を探し出す

    お世話になります。 C#かJava(CやC++は入れない)で、特定の配列の中に、該当する 配列があるかどうかを調べるメソッドがあれば、教えてください。 例えば… int[] a={0,0,0,1,2,3,4,5,6,7}; int[] b={3,4,5}; ならば、『5』が返ってくるなどです。 力技では、aの配列を順にみていき、bの一番目と同じなら、 お互いの配列の次の要素を比較…などとやっていくのですが、 これらの方法を、標準のメソッドがあれば…と思い、 質問させていただきました。 以上、よろしくお願いいたします。

    • ベストアンサー
    • Java
  • 配列要素の並べ替え

    $Res[$i]という配列に、数字の要素が入っているんですが、それを昇順で並べ替えして要素の間に/を入れたいのですが、 foreach (sort {$a cmp $b} keys %Res) { $Res2 = $Res[$i] + "/" } どうもこの記述では上手くいかないので、どなたか教えて下さい!!

    • ベストアンサー
    • Perl
  • 配列の頭に要素を挿入する方法

    初心者です。配列でご教授お願いします。 インデックス0からひとつずつ要素をずらして、配列の一番前に要素を挿入するにはどうしたらいいのでしょうか? int[] a = new int[10]; int n = a.length; for (int i = n-1; i < 1; i--){ a[i] = a[i-1]; } a[0] = 新しい要素 といった感じで書いたのですが、どうもループの中が実行されていないようなのです。 よろしくお願いいたします。

  • 配列の問題

    Javaを学校で習ってまだ2ヶ月ちょっとの初心者です。 困っております。 以下のようなプログラムを作成しています。 数時間かけても分からなかったので、ご回答お願いします。 1.配列(aとします)の大きさ(bとします)を、コマンドプロンプト上で指定します。 2.配列 a の i 番目の要素(0<=int i<b)に、整数値 x を代入します。 (xは、コマンドプロンプト上で指定できる、int型の任意の整数で、b個分あるような整数です。) 3.数値 x をすべて印字します。 1.は何とか分かるのですが、2.がいまいち出来ません。 なので、先に進めず、困っております。 ご回答よろしくお願いします。

    • ベストアンサー
    • Java
  • 配列 隣の要素を参照するのですが

    最初に 8つの要素を持つint型の配列(配列名dat)があるとして、最初全要素に「0」が代入されています。scanf関数でn番の要素に「1」が代入されたとします。n番なのでどこに「1」が代入されたかはわからないです。 問題 for文を使用して何番目に「1」が入力されたかを調べますが、以下のルールに従がわなくてなならいです。 ルール ・現在の要素から隣の要素を参照しなくてはいけない。 ・参照する範囲は要素の数「0~7」番 #include<stdio.h> void main() { int i, dat[8]; for(i=0;i<8;i++){ dat[i]=0; } i=0; scanf("%d",&i); dat[i] = 1; for(i=0;i<8;i++){ if(dat[i+1] == 1){print("%d列目に「1」がありました", i+1); } } でも…こうすると0番目の要素が参照されないですそれを回避するには?そして… 最大の要素(dat[7])にきたときは隣を参照しないようにするにはどうすればよいのでしょう?

このQ&Aのポイント
  • PX-404A プリンターのアンインストールが失敗し、OK部分がグレイでできません。新しいプリンタをインストールしたいのですが困っています。
  • EPSON社製品のPX-404A プリンターのアンインストール方法がわからず困っています。
  • PX-404A プリンターをアンインストールする際に問題が発生し、新しいプリンタをインストールすることができません。どのように対処すれば良いでしょうか。
回答を見る