浅谈Comparator接口使用方法

2015-08-21 11:41 阅读 3,247 次 评论 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基础 标签:,
关于90后结不起婚的原因 关于90后结不起婚的原因
初学Android Studio项目结构第一课 初学Android Studio项目结构第
浅谈mysql存储引擎 浅谈mysql存储引擎
Android开发之混淆基础教程 Android开发之混淆基础教程

发表评论

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

表情