您的位置:首页 > 编程语言 > Java开发

回归基础(Java比较器)

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

对集合进行排序大家应该都会想到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());传入

一个比较器,按这个比较规划排序。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: