Java 无法收集扫描仪数据

Java 无法收集扫描仪数据,java,inheritance,arraylist,polymorphism,Java,Inheritance,Arraylist,Polymorphism,问题:如何收集用户输入的所有信息,将其存储到ArrayList中并 是否显示所有输入的答案?我应该输入六支球队的名字、胜利、分区等等,并用System.out.println将它们显示在一个表中;正如我在for循环结束时尝试的那样 public class PlayoffSelectorClass extends Team { // main method public static void main(String[] args) { Team team1 = new T

问题:如何收集用户输入的所有信息,将其存储到ArrayList中并 是否显示所有输入的答案?我应该输入六支球队的名字、胜利、分区等等,并用System.out.println将它们显示在一个表中;正如我在for循环结束时尝试的那样

public class PlayoffSelectorClass extends Team {

// main method
   public static void main(String[] args) {
       Team team1 = new Team();
       Team team2 = new Team();
       Team team3 = new Team();
       Team team4 = new Team();
       Team team5 = new Team();
       Team team6 = new Team();

       for (int i = 0; i < 6; i++) {

           Scanner input = new Scanner(System.in);

           System.out.println("Please enter team name: ");
           String name = input.nextLine();

           System.out.println("\nPlease enter the city " + name + " played in: ");
           String city = input.nextLine();

           System.out.println("\nPlease enter the division " + name + " play in: ");
           String division = input.nextLine();

           System.out.println("\nPlease enter the number of wins " + name + " has: ");
           Integer wins = input.nextInt();

           System.out.println("\nPlease enter the number of losses " + name + " has: ");
           Integer loses = input.nextInt();

           if (i < 5) {
               System.out.println("\nEnter your next team...\n");
           }

           team1.setTeamName(name);
           team1.setCity(city);
           team1.setDivision(division);
           team1.setWins(wins);
           team1.setLoses(loses);

       }

       System.out.println("East   W   L   PCT");

       System.out.println(team1.getTeamName() + " " + team1.getWins() + " " + team1.getLoses());
    System.out.println(team1.getTeamName() + " " + team1.getWins() + " " + team1.getLoses());


   }
}

如果你确定你想要的团队数量是6,那么声明一个数组,如

List<Team> teams = new ArrayList<Team>();
这应该是一个设计变更,您不应该保留第1组、第2组……等等

当你想保存数据的时候

Team team = null;
for (int i = 0; i < 6; i++) {
team = new Team();
System.out.println("Please enter team name: ");
String teamName = input.nextLine();
team.setTeamName(teamName);
... // Similarly the rest. 
teams.add(team);

当您从控制台获取输入时,还需要进行一些附加检查。检查它是一个空白字符串还是一个输入。这些检查将使代码更无错误。

如果为每个玩家显式声明一个变量,则很难将用户的输入存储到正确的变量中,除非您执行一些讨厌的操作,如ifi==3 team3.setNamename。最好创建一个数组列表teams=newarraylist,并在每个循环中创建一个新的团队对象teamteam=newteam;您将填充team.setNamename等。。在每次迭代结束时,此对象将添加到数组列表teams.addteam中。在所有六次迭代之后,您将拥有一个数组列表,其中包含用户创建的每个团队。现在,您可以通过以下方式遍历此列表:

for(Team team: teams) {
  //do stuff with the team object, e.g.:
  System.out.println(team.getName());
}

您可以使用这样的列表

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class PlayoffSelector {

    static class Team {
        private String teamName;
        private String city;
        private String division;
        private Integer wins;
        private Integer loses;

        public void setTeamName(String teamName) {
            this.teamName = teamName;
        }

        public String getTeamName() {
            return teamName;
        }

        public void setCity(String city) {
            this.city = city;
        }

        public String getCity() {
            return city;
        }

        public void setDivision(String division) {
            this.division = division;
        }

        public String getDivision() {
            return division;
        }

        public void setWins(Integer wins) {
            this.wins = wins;
        }

        public Integer getWins() {
            return wins;
        }

        public void setLoses(Integer loses) {
            this.loses = loses;
        }

        public Integer getLoses() {
            return loses;
        }
    }

    public static void main(String[] args) {
        List<Team> teams  = new ArrayList<>();

        for (int i = 0; i < 2; i++) {

            Scanner input = new Scanner(System.in);

            System.out.println("Please enter team name: ");
            String name = input.nextLine();

            System.out.println("\nPlease enter the city " + name + " played in: ");
            String city = input.nextLine();

            System.out.println("\nPlease enter the division " + name + " play in: ");
            String division = input.nextLine();

            System.out.println("\nPlease enter the number of wins " + name + " has: ");
            Integer wins = input.nextInt();

            System.out.println("\nPlease enter the number of losses " + name + " has: ");
            Integer loses = input.nextInt();

            if (i < 5) {
                System.out.println("\nEnter your next team...\n");
            }

            Team team = new Team();
            team.setTeamName(name);
            team.setCity(city);
            team.setDivision(division);
            team.setWins(wins);
            team.setLoses(loses);

            teams.add(team);

        }

        System.out.println("East W   L   PCT");

        for (Team team : teams) {
            System.out.printf("%s\t%s\t%s\n",team.getTeamName(), team.getWins() , team.getLoses());
        }

    }
}