浅谈Comparator接口使用方法

2015-08-21 11:41 阅读 7,488 次 评论 0 条

一、摘要

Comparator是一个java.utils包下的接口,声明了compare(obj,obj)equals()两个接口方法,用于比较两个对象决定排列的优先级,必须使用实现类创建Comparator对象,知道的直接子类有SortedList.BatchedCallbackSortedList.CallbackSortedListAdapterCallback,简单使用:

  1. /** 
  2.  *降序排序的TreeMap集合 
  3.  * 
  4.  */  
  5. TreeMap mMap=new TreeMap(new Comparator<String>(){  
  6.          @Override  
  7.      public int compare(String arg0,String arg1){  
  8.   
  9.                  return arg1.compareTo(arg1);  
  10.      }  
  11. });  
  1. /** 
  2.  *降序排序List集合,使用Collections.sort()方法 
  3.  * 
  4.  */  
  5. Collections.sort(mList, new Comparator<String>() {  
  6.     @Override  
  7.     public int compare(String lhs, String rhs) {  
  8.           
  9.         return arg1.compareTo(arg1);  
  10.     }  
  11. });  

二.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()方法,你知道吗?

  1. /** 
  2.  * 接口的只需要实现其中一个方法 
  3.  */  
  4. private class ComparatorImpl implements Comparator<String>{  
  5.   
  6.         @Override  
  7.         public int compare(Object lhs, Object rhs) {  
  8.   
  9.             return lhs.compareTo(rhs);  
  10.         }  
  11. }  

该接口的一个好处是指定T类型,比较任何两个对象之间的大小,根据比较结果进行逻辑操作。

你可能感兴趣的文章

来源:TeachCourse每周一次,深入学习Android教程,关注(QQ158#9359$239或公众号TeachCourse)
转载请注明出处: https://www.teachcourse.cn/352.html ,谢谢支持!

资源分享

分类:Java基础 标签:,
生活杂谈之万网域名注册过程详解 生活杂谈之万网域名注册过程详解
重置路由器电脑网络显示黄色叹号怎么办? 重置路由器电脑网络显示黄色叹号
面向抽象的编程思想 面向抽象的编程思想
飞腾网更换名字Logo和favicon的通知 飞腾网更换名字Logo和favicon的