Comparable 和 Comparator
来源:互联网 发布:如何登录windows账户 编辑:程序博客网 时间:2024/05/27 19:26
Java中有两种方式来实现,一种是实现java.lang.Comprable;另一种实现java.util.Comparator.下面来谈它们两个的区别,和如何选择哪种方案比较好.
区别:
1. Comparale 接口只有一个方法: compareTo(Object obj)方法, 而Comparator接口,有两个方法:compare(Object obj1,Object obj2)和equals(Object obj)
2. Comparable 的类层次是:java.lang, 而java.util
3. 在Comparator中的compare方法里面,要对两个参数的类型进行检查,而Comparable中的compareTo只对一个参数进行检查
4.对于Comparator的equals方法,一般来说不用重写,而直接用基类Object的已经能满足大多数的需求,在这里推荐不要重写
选择哪种方案:
1. 对于Comparale比较简单而且需要比较少的工作,而且在用到TreeSet或TreeMap时,构造器不用带参数,且能每次都能用相同的的比较方法,如果用Comparable能达到目的,就最好用Comparable接口
2. 对于Comparator接口比较灵活,而且要更多一点的工作,能通过实现Comparator接口来产生很多不一样的类,而且能方便按其他的字段进行排序,同时对于基本类型数组无法用Comparator进行排序,只能用于对象的排序
- 关于 Comparable 和 Comparator
- 比较Comparable和Comparator
- comparable 和 Comparator 区别
- Comparable和Comparator
- Comparator和Comparable
- Comparator和Comparable
- Comparable和Comparator
- Comparable 和 Comparator
- Comparator和Comparable比较
- comparable 和 comparator
- Comparator和Comparable
- Comparator和Comparable用法
- comparable和comparator比较
- Comparator和Comparable区别
- Comparable和Comparator
- Comparator和Comparable
- java Comparable和Comparator
- Comparable和Comparator比较
- Effective C++(Item3) Prefer new and delete to malloc and free
- 包含PHP代码的几种标签
- 关于oracle的job
- 使用distinct在mysql中查询多条不重复记录值的解决办法
- 寒江独钓——读书笔记2
- Comparable 和 Comparator
- 嵌入式Linux的图像采集与显示
- 软件开发人员的个人发展不光是懂技术,还要勤奋和尊重别人
- virtual box 安装window 8 后修改windows8的屏幕分辨率的方法
- [打包、发布] [Android]使用命令行打APK包
- Unity3D资源包中没有Bouncy材质怎么办
- 关于使用SharedObject来缓存游戏图片或者swf文件资源到客户端本地的研究
- Unix常用命令
- 刚开始学Android