Collections中的sort方法2,比较器排序

使用Collections与比较器排序
/*
    Collections中还有一个sort方法,可以根据比较器排序
    static void sort​(List list, Comparator c):
        参数list:是要排序的集合
        参数c: 是比较器, 好比一个法官。
如果使用比较器排序,那么这个集合的泛型是不需要实现Comparable接口的。
总结:
        一个类实现Comparable接口,表示这个类的对象本身就具备了排序的功能,这种排序叫做自己排序。
        另一种方式是比较器排序,如果对象本身并不具备自然排序的功能,那么可以找一个法官帮这些对象
        进行排序,这个法官就是比较器。
       重点掌握比较器。
*/
public class Demo03Collections {
public static void main(String[] args) {
ArrayList<Student> hs=new ArrayList<>();/使用比较器进行排序,泛型Student此时不需要实现Compareable接口;
Collections.addAll(hs,new Student("大幂幂",19),
new Student("金星",22),new Student("凤姐",99));
 
//  static void sort​(List list, Comparator c):
 Collections.sort(hs,new Rule());//创建rule类实现comparator接口
 System.out.println(hs);

    }
}
//创建rule类实现了比较器的接口,rule里重写了比较规则。
public class Rule implements Comparator<Student> {
     /*
        如果返回值是0,表示o1o1相等
        如果返回值是负数,表示o1o2        如果返回值是整数,表示o1o2         升序就是12
        降序就是21
     */

    @Override
    public int compare(Student o1, Student o2) {
        return o2.getAge()-o1.getAge();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值