浅谈Comparator接口使用方法

2015-08-21 11:41 阅读 3,606 次 评论 0 条
版权声明:本文著作权归TeachCourse所有,未经许可禁止转载,谢谢支持!
转载请注明出处:http://teachcourse.cn/352.html

一、摘要

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类型,比较任何两个对象之间的大小,根据比较结果进行逻辑操作。

关注公众号 扫一扫二维码,加我QQ

如果文章对你有帮助,欢迎点击上方按钮关注作者

来源:TeachCourse每周一次,深入学习Android教程,关注(QQ1589359239或公众号TeachCourse)
转载请注明出处:http://teachcourse.cn/352.html
分类:Java基础 标签:,
PopupWindow实现微信绑定开户行弹窗效果 PopupWindow实现微信绑定开户行
Android Studio “Live Templates”如何提升编程效率? Android Studio “Live Temp
如何重用接口多个抽象方法中的一个或多个? 如何重用接口多个抽象方法中的一
Android开发之深入理解Android 7.0系统权限更改相关文档 Android开发之深入理解Android

发表评论

呲牙 憨笑 坏笑 偷笑 色 微笑 抓狂 睡觉 酷 流汗 鼓掌 大哭 可怜 疑问 晕 惊讶 得意 尴尬 发怒 奋斗 衰 骷髅 啤酒 吃饭 礼物 强 弱 握手 OK NO 勾引 拳头 差劲 爱你

表情