一、摘要
Comparator是一个java.utils包下的接口,声明了compare(obj,obj)和equals()两个接口方法,用于比较两个对象决定排列的优先级,必须使用实现类创建Comparator对象,知道的直接子类有SortedList.BatchedCallback、SortedList.Callback、SortedListAdapterCallback,简单使用:
- /**
- *降序排序的TreeMap集合
- *
- */
- TreeMap mMap=new TreeMap(new Comparator<String>(){
- @Override
- public int compare(String arg0,String arg1){
- return arg1.compareTo(arg1);
- }
- });
- /**
- *降序排序List集合,使用Collections.sort()方法
- *
- */
- Collections.sort(mList, new Comparator<String>() {
- @Override
- public int compare(String lhs, String rhs) {
- return arg1.compareTo(arg1);
- }
- });
二.Comparator方法解析
接口Comparator定义两个抽象方法:compare(T lhs,T rhs)、equals(Object obj),compare返回排序后的结果(-1,0,1),-1表示lhs小于rhs,0表示lhs等于rhs,1表示lhs大于rhs;equals比较两者之间的大小,返回true或false。
随记:至今想不明白,为啥Comparator声明的两个接口方法,可以只实现compare()接口方法,不用实现equals()方法,你知道吗?
- /**
- * 接口的只需要实现其中一个方法
- */
- private class ComparatorImpl implements Comparator<String>{
- @Override
- public int compare(Object lhs, Object rhs) {
- return lhs.compareTo(rhs);
- }
- }
该接口的一个好处是指定T类型,比较任何两个对象之间的大小,根据比较结果进行逻辑操作。
你可能感兴趣的文章
来源:TeachCourse,
每周一次,深入学习Android教程,关注(QQ158#9359$239或公众号TeachCourse)
转载请注明出处: https://www.teachcourse.cn/352.html ,谢谢支持!
转载请注明出处: https://www.teachcourse.cn/352.html ,谢谢支持!
分类:Java基础
标签:Comparator, Java基础