変数名に添え字を利用するやり方

実現したいこと

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件を表示する。
詳しくは実行例を参照すること。

コメントを投稿

0 コメント