对比较器Comparator的理解
来源:互联网 发布:上传淘宝图片不清楚 编辑:程序博客网 时间:2024/06/06 09:32
在Java编程中,接口Comparator是经常被使用的,比如向TreeSet和TressMap中放入元素时、对List进行排序时等都需要用Comparator指定排序规则!但是,具体怎么指定的好多人不太明白,我也不是很明白。现在把我理解的写出来,大家看对不对,互相讨论一下!
在使用Comparator接口时,我们要重写compare方法,真正的比较逻辑是compare方法中实现的。
在API文档中,对方法compare的说明如下:
Compares its two arguments for order. Returns a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second.
第一个参数大于第二个参数时,返回一个正数。也就是说,在执行时,“执行器”(不知道叫什么,目前就这样叫吧!哈)它是根据返回值排序的,如果是正数,它认为第一个参数比第二个参数大,第一个参数排在第二个参数后面,反之。所以,为了实现我们想要的排序时,我们就要遵循这个逻辑!
实在不好表达,我们举个例子吧!
比如有一个Person对象,按age进行排序,如果我们想实现升序,在compare中比较时,我们就得让“正数=第一个参数排在后面”,和“年龄大的排在后面”相挂钩,返回第一个参数的年龄减去第二个参数的年龄就行。反之。
语言很难表达清楚。大家可以看看下面的例子体会一下:
策略模式实现排序
- 对比较器Comparator的理解
- Java的Comparator和Comparable对比
- 两种取日期格式字符串的对比较
- Comparator自定义对比
- 较通俗的三层结构的理解
- 较容易理解 的广搜
- Comparator和Comparable的区别先分说在对比
- 对比较复杂的数据结构进行建模分析
- Android,TextVIew单行加省略号 ...对比较坑的问题
- 用文件对比工具过滤较旧文件的方法
- 比较器Comparator的试用
- 比较器Comparator的使用
- 比较器Comparator的使用
- Comparable与Comparator的两个小例子,简单容易理解
- 对CSocket及其运行机制有了较深的理解
- NS2中最全的无线Trace格式--较易理解
- NS2中最全的无线Trace格式--较易理解
- 模拟退火--较容易理解的一篇讲解
- Ubuntu10.10下安装Qt环境及Qt Creator开发工具
- 经过一天带半天的学习和错误调试, 重新对协议驱动的认识
- Shell脚本 字符串大小比较 字符串是否相等比较 字符串是否为空判断
- onkeypress的作用
- 8080端口被占用,无法连接到ASP.NET Development server的解决办法
- 对比较器Comparator的理解
- Android各平台模拟器分辨率 .
- 首批Win 8 Xbox游戏名单公开
- GIS其实就在我们身边
- C++的秘密之重载,覆盖,和隐藏
- Android动画之LayoutAnimationController(五)
- 原语
- VMware虚拟机出现Reason: Failed to lock the file
- python 之 yield