ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

[数据结构]TreeSet的条件筛选

[数据结构]TreeSet的条件筛选

要求排序:比较数语外成绩,如果相同则往后推进

import java.util.TreeSet;public class Main{public static void main(String[] args){//创建学生对象Student s1 = new Student("zhangsan",23,90,99,50);Student s2 = new Student("lisi",21,75,78,39);Student s3 = new Student("wangwu",26,23,53,21);Student s4 = new Student("zhaoliu",25,65,34,78);//创建集合//希望数据唯一的话用set 默认用hashset//希望用唯一又希望排序的话 就用TreeetTreeSet<Student> ts = new TreeSet<>();//3.添加元素ts.add(s1);ts.add(s2);ts.add(s3);ts.add(s4);//这里要先指定排序规则System.out.println(ts);}
}

public class Student implements Comparable<Student>{private String name;private int age;private int chinese;private int math;private int english;public Student() {}public Student(String name, int age, int chinese, int math, int english) {this.name = name;this.age = age;this.chinese = chinese;this.math = math;this.english = english;}/*** 获取* @return name*/public String getName() {return name;}/*** 设置* @param name*/public void setName(String name) {this.name = name;}/*** 获取* @return age*/public int getAge() {return age;}/*** 设置* @param age*/public void setAge(int age) {this.age = age;}/*** 获取* @return chinese*/public int getChinese() {return chinese;}/*** 设置* @param chinese*/public void setChinese(int chinese) {this.chinese = chinese;}/*** 获取* @return math*/public int getMath() {return math;}/*** 设置* @param math*/public void setMath(int math) {this.math = math;}/*** 获取* @return english*/public int getEnglish() {return english;}/*** 设置* @param english*/public void setEnglish(int english) {this.english = english;}public String toString() {return "Student{name = " + name + ", age = " + age + ", chinese = " + chinese + ", math = " + math + ", english = " + english + "}";}@Overridepublic int compareTo(Student o) {//比较两者的总分int sum1=this.getChinese()+this.getMath()+this.getEnglish();int sum2=o.getChinese()+o.getMath()+o.getEnglish();int i =sum1-sum2;i = i==0?this.getChinese()-o.getChinese():i;i = i==0?this.getMath()-o.getMath():i;i = i==0?this.getEnglish()-o.getEnglish():i;i = i==0?this.getAge()-o.getAge():i;i = i==0?this.getName().compareTo(o.getName()):i;return i;}
}

返回列表