案例(数据不真实)
有一个电视剧类,里面存储了电视剧的名字,播出时间,在我心中的排名,现在要对电视剧类对象进行排序。
方式一
让自定义类(如电视剧类)实现Comparable接口,并重写comparaTo(),自定义比较规则。
public class Student implements Comparable<Student>{
int score;
@Override
public int compareTo(Student o) {
return this.score - o.score;
}
}
方式二
通过调用Comparator集合有参数构造器,可以设置Comparator对象(比较器对象,用于指定比较规则)。
//方式二
//通过调用自定义类的有参构造器,可以设置Comparator对象(比较器对象,用于指定比较规则)
//简化前
// Collections.sort(list, new Comparator<TV>() {
// @Override
// public int compare(TV o1, TV o2) {
// return o1.sort-o2.sort;//升序
// }
// });
//第一次简化
// Collections.sort(list,(o1, o2)-> {
// return Integer.compare(o1.sort,o2.sort);
// });
//第二次简化
Collections.sort(list,TV::compareTo);
//方法引用 类名::方法
System.out.println(list);
}