回归基础(Java比较器)

又到下班时间了,投入进代码的世界总是感觉时间过得很快,与其感叹时间流逝不如踏踏实实做事,高速运转一天了,写个简单的集合排序实例回归基础吧。


对集合进行排序大家应该都会想到Collections类中的静态方法sort(),  对于List<String> list =new ArrayList<String>();  我们可以直接使用Collections.sort(list)进行排序,排序规则可以查看String类的源码,String 实现了Comparable接口并覆盖了compareTo()方法,所以它的排序规划是按字典顺序排序的。如果我们自定义的类要按照某种规则进行排序的话,有两种方法,一种是类似String类实现了Comparable接口并覆盖了compareTo()方法,直接使用Collections.sort(list)。还有一种方法是自定义一个比较器类实现Comparator接口并覆盖compare方法,在这个方法中按自己的需求编写排序规划,如:

 class CurrentCompartor implements Comparator<NotifyTempletConfig> {

        @Override
        public int compare(NotifyTempletConfig o1, NotifyTempletConfig o2) {
            int result = o1.getDischargePort().compareTo(o2.getDischargePort());
            if (result == 0) {
                return o1.getDestinalPort().compareTo(o2.getDestinalPort());
            } else {
                return result;
            }
        }

        @Override
        public boolean equals(Object obj) {
            return false;
        }
    }
如果自定义的类没有实现Comparable接口,直接使用Collections.sort(list)不会编译通过,那么你也可以使用第二种方法Collections.sort(list,new CurrentCompartor());传入

一个比较器,按这个比较规划排序。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值