import java.util.Comparator;
import java.util.Scanner;
import java.util.TreeSet;
/*
键盘录入3个学生信息(姓名,语文成绩,数学成绩,英语成绩),\
*/
public class TreeSetText {
public static void main(String[] args) {
//创建TreeSet集合
TreeSet<Student> ts = new TreeSet<Student>(new Comparator<Student>(){
@Override
public int compare(Student s1, Student s2) {
//总分
int num = s2.getSum() - s1.getSum();
//语文成绩比较
int num2 = (num == 0) ? (s2.getChineseScore() - s1
.getChineseScore()) : num;
//数学成绩比较
int num3 = (num2 == 0) ? (s2.getMatnScore() - s1.getMatnScore())
: num2;
//名字比较
int result = (num3 == 0) ?(s2.getName().compareTo(s1.getName()))
: num3;
return result;
}
});
//创建3个学生对象
for(int i = 0; 1 < 3; i++) {
//键盘输入
System.out.println("请输入姓名:");
String name = new Scanner(System.in).nextLine();
System.out.println("请输入语文成绩:");
int chineseScore = new Scanner(System.in).nextInt();
System.out.println("请输入数学成绩:");
int matnScore = new Scanner(System.in).nextInt();
System.out.println("请输入英语成绩:");
int englishScore = new Scanner(System.in).nextInt();
//添加学生对象到 集合
ts.add(new Student(name, chineseScore, matnScore, englishScore));
}
//遍历
System.out.println("姓名\t" + "语文成绩\t" + "数学成绩\t" + "英语成绩\t" + "总分\t");
for(Student s : ts) {
System.out.println(s.getName()+ "\t" +s.getChineseScore()+ "\t" +s.getMatnScore()+ "\t"
+s.getEnglishScore()+ "\t" +s.getSum());
}
}
}
报错说是执行不到的代码,如果自动修复就是让你删除这行代码,如果第58行代码删除(也就是遍历下面的ystem.out.println("姓名\t" + "语文成绩\t" + "数学成绩\t" + "英语成绩\t" + "总分\t");这一行,如果删除,就会提示59行一样的报错,研究一个小时了,还是没有找到原因,我和视频里的代码对照一下,除了matn不一样外,其他的都一样。但我复制视频里的代码就可以正常运行,这个确提示报错。)
|
|