【发布时间】:2018-05-05 06:22:49
【问题描述】:
我有一个包含学生成绩的 ArrayList,我想用给定的成绩字母过滤学生。例如,如果用户输入 A,表格必须显示所有成绩为 F 的学生。但问题是它没有过滤它。
static List<Assign2> studentList = new ArrayList<>();
String letter = JOptionPane.showInputDialog(this,"Which grade do you want to filter?");
List<Assign2> remaining = new ArrayList<>(studentList);
for(int i=0;i<remaining.size();i++){
if(remaining.get(i).getLetterGrade()!=letter){
remaining.remove(i);
}
}
table(remaining);
【问题讨论】:
-
你的字母等级格式是什么?
String? char?或者你确定成绩不都是A的? ^^ -
旁注:去掉 if 字母是“A”等,只检查循环中用户输入的值,否则你需要很多循环,每个字母一个。
-
使用调试器在添加时实时查看值。
-
另外,如果这是您的代码,那么 studentList 是空的。显然还有更多我们看不到的事情发生。
-
@JoachimHuet 字母等级必须为
String类型,因为char没有contains()方法