- ベストアンサー
配列の初期化
java初心者です 配列の初期化についてなのですが、たとえば String[] name = {"A","B","C","D","E","F","G","H","I","J"}; int[] age = {12,18,25,18,20,32,22,15,30,37,29,24}; とありこれを10代/20代/30代に分けるとして int[] age10 = new int[?]; int[] age20 = new int[?]; int[] age30 = new int[?]; と宣言したいのですが、?にはなにを入れればいいのでしょうか? int[] ageのところから自分で数えて4/5/3と入れるのは無しです。 お手数ですがアドバイスや解説おねがいしますm(_ _)m
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
年代ごとにカウントしてやるしかないですかね。 String[] name = {"A","B","C","D","E","F","G","H","I","J"}; int[] age = {12,18,25,18,20,32,22,15,30,37,29,24}; int[] age10; int[] age20; int[] age30; int[] ageLength = new int[3]; for ( int i = 0 ; i < age.length ; i ++){ if ( age[i] > hogehoge && age[i] < 20 ){ ageLength[hogehoge]++; } else if ( age[i] > 19 && age[i] < hogehoge ){ ageLength[hogehoge]++; } else if ( age[i] > hogehoge && age[i] < hogehoge ){ ageLength[hogehoge]++; } } age10 = new int[ageLength[0]]; age20 = new int[ageLength[1]]; age30 = new int[ageLength[2]]; プログラム内の「hogehoge」の部分を適切に修正すれば動作します。 hogehogeの内容は考えてみてください。
その他の回答 (1)
- kotoby2003
- ベストアンサー率15% (280/1755)
私の場合ですが、 int[] age10 = new int[age.length]; としてしまいます。 細かいことを気にしすぎて複雑なコーディングをするのはナンセンスです。 ただ、そういった処理をするのでしたら、配列より、ArrayListを使ったほうがよいかもしれませんね。