java - 我在 CMD 中收到此错误,但它在 intellij 中正常工作。当我输入数据 3 次时发生
问题描述
数组列表创建和方法(它发生在我运行 DisplayPremierLeagueTable () 方法时。它在 Intelij 中运行,当我在 CMD 中编译和运行它时发生这种情况。
private ArrayList<FootBallClub> sportsClubsList= new ArrayList<>();
添加成员方法在此处输入图像描述
@Override
public void AddNewFootBallClub (FootBallClub Cmember) {
if(Cmember instanceof FootBallClub ){
sportsClubsList.add(Cmember);
System.out.println();
System.out.println(Cmember.getName()+ " successfully added!");
}else if (Cmember instanceof SclFootBallClub){
sportsClubsList.add(Cmember);
System.out.println();
System.out.println(Cmember.getName()+ " successfully added!");
}
else if(Cmember instanceof UniversityClub){
sportsClubsList.add(Cmember);
System.out.println();
System.out.println(Cmember.getName() + " successfully added!");
}
else{
System.out.println("Full");
}
}
显示表
@Override
public void DisplayPremierLeagueTable () {
int x = sportsClubsList.size();
FootBallClub footBallClub= null;
for (int i = 0; i<x;i++){
for(int j = 1; j<(x-i);j++){
if((sportsClubsList.get(j-1)).getPoints()<((sportsClubsList.get(j)).getPoints())){
footBallClub = sportsClubsList.get(1-j);
sportsClubsList.set(1-j, sportsClubsList.get(j));
sportsClubsList.set(j, footBallClub);
}
}
}
String Name = "Name of the Club";
String Reg_id = "Registration Id";
String Location = "Location";
String Cap_Name = "Name of Captain";
String Member_Count = "Member Count";
String Num_of_Wins = "Wins";
String Num_of_Defeats = "Defeats";
String Num_of_Draws = "Draws";
String Num_of_Matches = "Matches";
String Goal_Soc = "Scored Goals";
String Goal_received = "Received Goals";
String Points = "Points";
System.out.println(" ******************************Premier League Table****************************** ");
System.out.println(" __________________________________________________________________________________________________________________________________________________________");
System.out.printf(" |%-15s|%-15s|%-15s|%-15s|%-10s|%-10s|%-10s|%-10s|%-15s|%-15s|%-10s|\n", Name, Reg_id, Cap_Name, Member_Count, Num_of_Wins, Num_of_Defeats, Num_of_Draws, Num_of_Matches, Goal_Soc, Goal_received, Points);
System.out.println(" __________________________________________________________________________________________________________________________________________________________");
for (FootBallClub CMember : sportsClubsList) {
System.out.printf(" |%-16s| %-14s| %-14s| %-14s| %-9s| %-10s| %-9s| %-9s| %-12s| %-13s | %-10s|\n", CMember.getName(), CMember.getRegistration_Number(), CMember.getCaptain_Name(), CMember.getMember_Count(), CMember.getNum_of_Wins(), CMember.getNum_of_defeats(), CMember.getNum_of_draws(), CMember.getNum_of_Matches(), CMember.getNum_of_Goals_Scored(), CMember.getNum_of_Goals_Received(), CMember.getPoints());
System.out.println(" __________________________________________________________________________________________________________________________________________________________");
}
}
我在 CMD 中遇到的错误
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -1
at java.util.ArrayList.elementData(ArrayList.java:424)
at java.util.ArrayList.get(ArrayList.java:437)
at PremierLeagueManager.DisplayPremierLeagueTable(PremierLeagueManager.java:62)
at MainCli.userInput(MainCli.java:41)
at MainCli.displayMenu(MainCli.java:18)
at MainCli.AddNewFootballClub(MainCli.java:253)
at MainCli.userInput(MainCli.java:35)
at MainCli.displayMenu(MainCli.java:18)
at MainCli.userInput(MainCli.java:51)
at MainCli.displayMenu(MainCli.java:18)
at MainCli.AddNewFootballClub(MainCli.java:253)
at MainCli.userInput(MainCli.java:35)
at MainCli.displayMenu(MainCli.java:18)
at MainCli.AddNewFootballClub(MainCli.java:253)
at MainCli.userInput(MainCli.java:35)
at MainCli.displayMenu(MainCli.java:18)
at Tester.main(Tester.java:4)*
我没有给数组列表中的任何成员计数。
解决方案
似乎您正在通过交换索引和sportsClubsList
的俱乐部来对 进行排序。在我看来,你的意思是交换,而不是。j
1-j
j
j-1
PS在java中的命名约定是方法以小写字母开头
推荐阅读
- dart - Flutter:无法从 Firebase 身份验证中获取错误代码?
- javascript - FormData 无法发送 Javascript
- python - 错误:找不到 MagickWand 共享库。您可能还没有安装 ImageMagick 库。(虽然我有)
- angular - 从 typescript angular 6 中选择默认选项值
- c# - DataGridViewCell 在更改焦点之前不会更新
- postgresql - 仅返回 RANK() 之后的最小值
- git - 无法使用 Jenkins 配置 Selenium
- java - 使用 Spring AMQP 接收和发送 Java 对象
- php - 并非所有子类别都来自 codeigniter 中的模型
- google-bigquery - 是否可以锁定 BigQuery 中的某些表记录?