Java学习之TreeSet的反序

xiaoxiao2021-02-28  90

第一次代码修改

创建了一个学生类,同时在实现Comparable接口后,重写了其中的compareto方法,使总成绩可以由高到低排序

package com.edu.homework; public class Student implements Comparable<Student>{//使用自然排序实现comparable接口并重写其中额比较方法 private String name; private int chinese; private int math; private int english; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getChinese() { return chinese; } public void setChinese(int chinese) { this.chinese = chinese; } public int getMath() { return math; } public void setMath(int math) { this.math = math; } public int getEnglish() { return english; } public void setEnglish(int english) { this.english = english; } public Student(String name, int chinese, int math, int english) { super(); this.name = name; this.chinese = chinese; this.math = math; this.english = english; } public Student() { super(); // TODO Auto-generated constructor stub } public int getAllscores(){ return chinese+math+english; } //从重写compareto方法 @Override public int compareTo(Student s) { int num = s.getAllscores()-this.getAllscores();//总成绩由大到小排序 int num2 = num==0?this.name.compareTo(s.name):num;//如果总成绩一样,那么再按照名字自然排序 return num2; } }

集合使用treeset集合这样可以指定排序方式

package com.edu.homework; import java.util.Scanner; import java.util.TreeSet; /** * 键盘录入5个学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分从高到低输出到控制台 * */ public class Demo5 { public static void main(String[] args) { //创建treeset集合 TreeSet<Student> set= new TreeSet<Student>(); for (int i = 0; i < 3; i++) { Scanner scanner = new Scanner(System.in); System.out.println("请输入第"+(i+1)+"学生姓名:"); String name = scanner.nextLine(); System.out.println("请输入学生语文成绩:"); int chinese = scanner.nextInt(); System.out.println("请输入学生数学成绩:"); int math = scanner.nextInt(); System.out.println("请输入学生英语成绩:"); int english = scanner.nextInt(); //创建有参学生对象并加入数据 Student s = new Student(name,chinese,math,english); //把学生对象添加到set集合中 set.add(s); } //遍历set集合 for (Student s : set) { //取出学生总成绩和名字 System.out.println(s.getAllscores()+" "+s.getName()); } } }

转载请注明原文地址: https://www.6miu.com/read-40680.html

最新回复(0)