package com.it03;
import java.util.Comparator;
import java.util.Set;
import java.util.TreeSet;
public class TreeSetDemo {
public static void main(String[] args) {
//创建TreeSet集合对象,通过比较器排序进行排序
//匿名内部类
Set<Student> set = new TreeSet<>(new Comparator<Student>() {
@Override
public int compare(Student s1, Student s2) {
// return s2.getSum() - s1.getSum(); //降序 由高到低 主要条件
int num = s2.getSum() - s1.getSum();
int num2 = num == 0 ? s1.getChinese() - s2.getChinese() : num;
//总分一样按语文排
//按名字排序 次要条件
int num3 = num2 == 0 ? s1.getName().compareTo(s2.getName()) : num2;
return num3;
}
});
//创建学生对象
Student s1 = new Student("刘", 99, 99);
Student s2 = new Student("王", 87, 89);
Student s3 = new Student("张", 89, 100);
Student s4 = new Student("李", 87, 87);
Student s5 = new Student("la", 88, 88);
Student s6 = new Student("hanhan", 88, 88);
//把学生对象添加到集合
set.add(s1);
set.add(s2);
set.add(s3);
set.add(s4);
set.add(s5);
set.add(s6);
//遍历集合
for (Student s : set) {
System.out.println(s.getName() + ", 语文:" + s.getChinese() + ",数学:" + s.getMath() + ",总分:" + s.getSum());
}
}
}
用Comparator比较器,匿名内部类