package com.wangchi.demo03;
public class Student {
private String name;
private int theoreticalFraction;
private int operatingScore;
private int credit;
private int age;
public Student(String name, int theoreticalFraction, int operatingScore, int credit, int age) {
this.name = name;
this.theoreticalFraction = theoreticalFraction;
this.operatingScore = operatingScore;
this.credit = credit;
this.age = age;
}
public Student() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getTheoreticalFraction() {
return theoreticalFraction;
}
public void setTheoreticalFraction(int theoreticalFraction) {
this.theoreticalFraction = theoreticalFraction;
}
public int getOperatingScore() {
return operatingScore;
}
public void setOperatingScore(int operatingScore) {
this.operatingScore = operatingScore;
}
public int getCredit() {
return credit;
}
public void setCredit(int credit) {
this.credit = credit;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", theoreticalFraction=" + theoreticalFraction +
", operatingScore=" + operatingScore +
", credit=" + credit +
", age=" + age +
'}';
}
}
package com.wangchi.demo03;
import java.util.Comparator;
import java.util.TreeSet;
public class Test01 {
public static void main(String[] args) {
Comparator comparator = new Comparator() {
@Override
public int compare(Object o1, Object o2) {
Student s1 = (Student) o1;
Student s2 = (Student) o2;
if (s1.getTheoreticalFraction() + s1.getOperatingScore() > s2.getOperatingScore() + s2.getTheoreticalFraction()) {
return -1;
} else if (s1.getTheoreticalFraction() + s1.getOperatingScore() < s2.getOperatingScore() + s2.getTheoreticalFraction()) {
return 1;
} else {
//相等
if (s1.getCredit() > s2.getCredit()) {
return -1;
} else if (s1.getCredit() < s2.getCredit()) {
return 1;
} else {
//学分相等
if (s1.getAge() > s2.getAge()) {
return 1;
} else if (s1.getAge() < s2.getAge()) {
return -1;
}
}
}
return 0;
}
};
TreeSet<Student> students = new TreeSet<>(comparator);
students.add(new Student("张三", 18, 48, 100, 26));
students.add(new Student("李四", 22, 56, 90, 24));
students.add(new Student("王五", 29, 30, 95, 25));
students.add(new Student("马六", 9, 70, 80, 22));
students.add(new Student("候七", 19, 60, 70, 23));
students.add(new Student("候八", 19, 60, 70, 21));
for (Student student : students) {
System.out.println(student);
}
}
}