実現したいこと
Javaの変数名に添え字を付けるやり方を教えて頂けないでしょうか?
Java
1import java.util.ArrayList; 2import java.util.Random; 3 4public class PersonApp { 5 6 public static void main(String[] args) { 7 8 Random r = new Random(); 9 ArrayList<Person> person_list = new ArrayList<>(); 10 int maxnum1; 11 int maxnum2; 12 int maxnum3; 13 int maxnum4; 14 int maxnum5; 15 int maxnum6; 16 int maxnum7; 17 int maxnum8; 18 int maxnum9; 19 int maxnum10; 20 21 for (int i = 0; i < 100; i++) { 22 23 char name = (char) (r.nextInt(6) + 'A'); 24 int score = r.nextInt(101); 25 26 Person person = new Person(name, score); 27 System.out.println("・・・" + person.name + "[" + person.score + "]"); 28 person_list.add(person); 29 30 } 31 32 maxnum1 = person_list.get(0).score; 33 maxnum2 = person_list.get(0).score; 34 maxnum3 = person_list.get(0).score; 35 maxnum4 = person_list.get(0).score; 36 maxnum5 = person_list.get(0).score; 37 maxnum6 = person_list.get(0).score; 38 maxnum7 = person_list.get(0).score; 39 maxnum8 = person_list.get(0).score; 40 maxnum9 = person_list.get(0).score; 41 maxnum10 = person_list.get(0).score; 42 43 for (int j = 0; j < person_list.size(); j++) { 44 45 if (maxnum1 < person_list.get(j).score) { 46 47 maxnum1 = person_list.get(j).score; 48 } 49 50 if (maxnum2 < person_list.get(j).score && person_list.get(j).score < maxnum1) { 51 52 maxnum2 = person_list.get(j).score; 53 } 54 55 if (maxnum3 < person_list.get(j).score && person_list.get(j).score < maxnum2) { 56 57 maxnum3 = person_list.get(j).score; 58 } 59 60 if (maxnum4 < person_list.get(j).score && person_list.get(j).score < maxnum3) { 61 62 maxnum4 = person_list.get(j).score; 63 } 64 65 if (maxnum5 < person_list.get(j).score && person_list.get(j).score < maxnum4) { 66 67 maxnum5 = person_list.get(j).score; 68 } 69 70 if (maxnum6 < person_list.get(j).score && person_list.get(j).score < maxnum5) { 71 72 maxnum6 = person_list.get(j).score; 73 } 74 if (maxnum7 < person_list.get(j).score && person_list.get(j).score < maxnum6) { 75 76 maxnum7 = person_list.get(j).score; 77 } 78 79 if (maxnum8 < person_list.get(j).score && person_list.get(j).score < maxnum7) { 80 81 maxnum8 = person_list.get(j).score; 82 } 83 84 if (maxnum9 < person_list.get(j).score && person_list.get(j).score < maxnum8) { 85 86 maxnum9 = person_list.get(j).score; 87 } 88 if (maxnum10 < person_list.get(j).score && person_list.get(j).score < maxnum9) { 89 90 maxnum10 = person_list.get(j).score; 91 } 92 93 } 94 95 System.out.println("一番大きい" + maxnum1); 96 System.out.println("二番大きい" + maxnum2); 97 System.out.println("三番大きい" + maxnum3); 98 System.out.println("四番大きい" + maxnum4); 99 System.out.println("五番大きい" + maxnum5); 100 System.out.println("六番大きい" + maxnum6); 101 System.out.println("七番大きい" + maxnum7); 102 System.out.println("八番大きい" + maxnum8); 103 System.out.println("九番大きい" + maxnum9); 104 System.out.println("十番大きい" + maxnum10); 105 106 } 107 108} 109
補足情報(FW/ツールのバージョンなど
現在、「ジョイタスネット」というサイトを利用して、Javaの学習を行っています。
事例は下記に記載しているのですが、
Javaの変数名に添え字をつけて、for文でまとめてすっきりとした形にしたいと考えております。
上記に設問に対してのソースを記載しているのですが、
配列の中から上位10番目のscoreを抽出する際に、
変数を10個用意して、比較して総当たり戦を行っているのですが、
この際にfor文のカウンター(for(int i=0;i<10;i++))を変数名につけて
すっきりとした形であらわしたいのですが、やり方が分かりませんでした。
単純に「maxnumi」とすると、違った変数名になってしまうので、
単純に末尾につけるものではないと考えています。
どなたか助言頂いてもよろしいでしょうか?
int maxnum1;
int maxnum2;
int maxnum3;
int maxnum4;
int maxnum5;
int maxnum6;
int maxnum7;
int maxnum8;
int maxnum9;
int maxnum10;
<設問>
Q1
Personクラスを作成する。
■Personクラス
[field]
name
score
アプリケーションクラスにてPersonクラスのインスタンスを100個作成する。
その際、名前はA,B,C,D,E,Fからのランダム。点数は0~999点のランダムとする。
作成されたデータから点数の上位10件を表示する。
詳しくは実行例を参照すること。
回答2件
あなたの回答
tips
プレビュー