タスク:プログラムのユーザーがフィールド内の8レーンのランニングトラックのそれぞれにランナーを割り当てることを許可するJavaプログラムを作成します。重複入力なしのarraylist javaへのコンソール入力
入力プロセス、配列リスト、セッター、ゲッタが正しく動作するようになりましたが、私の問題は8レーンの入力数を制限して1ランナーあたり1レーンしか割り当てることができないという問題です。ここに私の入力コードは、現在、次のとおりです。
public List<Item> createListOfCompetitors(){
List<Item> newListOfCompetitors = new ArrayList<>();
try (Scanner sc = new Scanner(System.in)) {
do {
System.out.println("Enter Competing Runner Name");
String name = sc.nextLine();
System.out.println("Assign a lane to the runner! ");
while (!sc.hasNextDouble()) {
System.out.println("Use a valid number");
sc.next();
}
double lane = sc.nextDouble();
Item item = new Item(name, lane);
newListOfCompetitors.add(item);
System.out.println("Enter Y to continue or N to quit");
sc.nextLine();
} while (sc.nextLine().equalsIgnoreCase("y"));
}
return newListOfCompetitors;
}
アレイ(インデックス=レーン番号)またはマップ(キー=レーン番号)はどうですか? –
レーン番号とキーのキーをランナー名として使用したマップを使用しますか? –
私はそれがうまくいくことは知っていますが、コンソール入力の限界を実装して、トラックレーンにランナー名を割り当てて、2番目、3番目、既に割り当てられているレーンへの第4のランナー名。それは理にかなっていますか?私がしなければならないことは、入力中に未使用のトラックレーン番号の使用を許可するしか方法を見つけ出すことではありません。 – Javacodeman113