プロが教える店舗&オフィスのセキュリティ対策術

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

A 回答 (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の内容は考えてみてください。
    • good
    • 0

私の場合ですが、


int[] age10 = new int[age.length];
としてしまいます。
細かいことを気にしすぎて複雑なコーディングをするのはナンセンスです。
ただ、そういった処理をするのでしたら、配列より、ArrayListを使ったほうがよいかもしれませんね。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!