import java.util.Comparator;
import java.util.Scanner;
import java.util.TreeSet;
import cn.itcast.bean.Student;
public class Test1 {
/**
* 请输入学生考试成绩:
* 张三,80,80,80
* 李四,70,75,65
* 王五,90,95,80
* 赵六,60,60,60
* quit
*
* 排序后的学生信息:
* 王五,90,95,80,265
* 张三,80,80,80,240
* 李四,70,75,65,210
* 赵六,60,60,60,180
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in); //创建Scanner对象
System.out.println("请输入学生成绩:格式是 姓名,数学成绩,语文成绩,英语成绩");
TreeSet<Student> ts = new TreeSet<>(new Comparator<Student>() {
@Override
public int compare(Student s1, Student s2) {
int num = s2.getSum() - s1.getSum(); //按照学生的总成绩降序排列
return num == 0 ? 1 : num; //如果总成绩一样保留,返回不是0即可保留
}
});
while(true) {
String line = sc.nextLine(); //将键盘录入的结果存储在line中
if("quit".equals(line)) //如果是quit
break; //退出无限循环
try {
String[] arr = line.split(","); //将录入的字符串切割
int math = Integer.parseInt(arr[1]); //将数组中的第二个值转换为int
int chinese = Integer.parseInt(arr[2]);
int english = Integer.parseInt(arr[3]);
ts.add(new Student(arr[0], math, chinese, english));//封装成Student对象并添加到TreeSet集合中
} catch (Exception e) { //录入格式错误,温馨提示
System.out.println("您录入的格式非法,格式是 姓名,数学成绩,语文成绩,英语成绩");
}
}
System.out.println("排序后的学生成绩是:");
for (Student student : ts) { //遍历集合
System.out.println(student); //打印集合中的每一个元素
}
}
|
|