Java 的 Collections.sort排序

本人技术能力有限,如果说的不好,希望大家不要吐槽

升序排序

Collections.sort(list, new Comparator<Integer>() {
    @Override
    public int compare(Integer o1, Integer o2) {
        return o1 - o2;
    }
});

 

因为 Collections.sort 内部默认是升序排序的

代码解释:

情况1:

现在假设 o1等于9 ,o2等于10,那么o1 - o2<0,也就是 9-10<0, 意思就是:告诉比较器 o1<o2,也就是告诉比较器9<10,按照 Collections.sort 内部默认升序排序,小的排到前面,大的排到后面,所以排序后的结果就是,o1,o2,也就是 9,10 

 

情况2:

现在假设o1等于10,o2等于9,那么 o1 - o2>0, 也就是 10-9>0,意思就是:告诉比较器o1>o2,也就是告诉比较器10>9,按照 Collections.sort 内部默认升序排序,小的排到前面,大的排到后面,所以排序后的结果就是,o2,o1,也就是 9,10 

通过上面两种情况,就实现了升序排序

 

 

降序排序

Collections.sort(list, new Comparator<Integer>() {
    @Override
    public int compare(Integer o1, Integer o2) {
        return o2 - o1;
    }
});

代码解释:

情况1:

现在假设 o1等于9 ,o2等于10,那么o2 - o1>0,也就是 10-9>0, 意思就是:告诉比较器 o1>o2,也就是告诉比较器9>10,按照 Collections.sort 内部默认升序排序,小的排到前面,大的排到后面,所以排序后的结果就是,o2,o1,也就是 10,9 

 

情况2:

现在假设o1等于10,o2等于9,那么 o2 - o1<0, 也就是 9-10<0,意思就是:告诉比较器o1<o2,也就是告诉比较器10<9,按照 Collections.sort 内部默认升序排序,小的排到前面,大的排到后面,所以排序后的结果就是,o1,o2,也就是 10,9 

通过上面两种情况,就实现了降序排序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值