第一部分:
public class Student { private String name; private Integer chinese; private Integer math; private Integer english; public Student(){ super(); } public Student(String name,Integer chinese,Integer math,Integer english){ super(); this.name = name; this.chinese = chinese; this.math = math; this.english = english; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getChinese() { return chinese; } public void setChinese(Integer chinese) { this.chinese = chinese; } public Integer getMath() { return math; } public void setMath(Integer math) { this.math = math; } public Integer getEnglish() { return english; } public void setEnglish(Integer english) { this.english = english; } public int getSum(){ return this.chinese+this.math+this.english; } @Override public String toString() { return "Student{" + "name=‘" + name + ‘\‘‘ + ", chinese=" + chinese + ", math=" + math + ", english=" + english + ‘}‘; }} 第二部分:
import java.util.Comparator;import java.util.Scanner;import java.util.TreeSet; public class TreeSetDemo { public static void main(String[] args){ TreeSet<Student> st = new TreeSet<>(new Comparator<Student>() { @Override public int compare(Student s1, Student s2){ //总分从高到低 int num = s2.getSum()-s1.getSum(); //总分相同不一定语文相同 int num2 = num == 0 ? s1.getChinese()-s2.getChinese():num; //总分相同不一定数学相同 int num3 = num2 == 0 ? s1.getMath()-s2.getMath():num2; //总分相同不一定英语相同 int num4 = num3 == 0 ? s1.getEnglish()-s2.getEnglish():num3; //姓名还不一定相同 int num5 = num4 == 0 ? s1.getName().compareTo(s2.getName()):num4; return num5; } }); System.out.println("学生信息录入开始"); //键盘录入学生的对应值 for (int x=1;x<= 5;x++){ Scanner sc = new Scanner(System.in); System.out.println("请输入第"+x+"个学生的姓名:"); String name = sc.nextLine(); System.out.println("请输入第"+x+"个学生的语文成绩:"); String chinese = sc.nextLine(); System.out.println("请输入第"+x+"个学生的数学成绩:"); String math = sc.nextLine(); System.out.println("请输入第"+x+"个学生的英语成绩:"); String english = sc.nextLine(); //把数据封装到学生对象中 Student student = new Student(); student.setName(name); student.setChinese(Integer.parseInt(chinese)); student.setMath(Integer.parseInt(math)); student.setEnglish(Integer.parseInt(english)); //把学生对象添加到集合 st.add(student); } System.out.println("学生信息录入完毕"); System.out.println("学生信息从高到低排序如下:"); System.out.println("姓名\t语文成绩\t数学成绩\t英语成绩" ); //遍历集合 for (Student s: st){ System.out.println(s.getName() + "\t\t" + s.getChinese() + "\t\t" + s.getMath() + "\t\t" + s.getEnglish()); } }} 输出结果:
学生信息录入开始
请输入第1个学生的姓名:
唐僧
请输入第1个学生的语文成绩:
100
请输入第1个学生的数学成绩:
90
请输入第1个学生的英语成绩:
80
请输入第2个学生的姓名:
孙悟空
请输入第2个学生的语文成绩:
99
请输入第2个学生的数学成绩:
98
请输入第2个学生的英语成绩:
97
请输入第3个学生的姓名:
猪八戒
请输入第3个学生的语文成绩:
88
请输入第3个学生的数学成绩:
66
请输入第3个学生的英语成绩:
55
请输入第4个学生的姓名:
沙僧
请输入第4个学生的语文成绩:
60
请输入第4个学生的数学成绩:
50
请输入第4个学生的英语成绩:
40
请输入第5个学生的姓名:
龙马
请输入第5个学生的语文成绩:
85
请输入第5个学生的数学成绩:
80
请输入第5个学生的英语成绩:
70
学生信息录入完毕
学生信息从高到低排序如下:
姓名 语文成绩 数学成绩 英语成绩
孙悟空 99 98 97
唐僧 100 90 80
龙马 85 80 70
猪八戒 88 66 55
沙僧 60 50 40
Process finished with exit code 0
原文地址:https://www.cnblogs.com/WTBK/p/9426063.html
时间: 2024-08-28 08:13:01