分享好友 最新动态首页 最新动态分类 切换频道
源码详解 Comparable 和 Comparator 接口, compareTo 方法和 compare 方法的区别和使用
2024-12-28 19:57

对集合中的元素排序,我们可以使用 Collections 工具类如

 

为什么是升序排序
怎么改为降序呢
如果想要对一个学生的属性进行排序?如

 

显然这里是不行的,谁知道这是按学生的哪个属性排序,那么怎么去自定义排序的方式呢


先说结论:Integer 包装类 实现了Comparable 接口,重写了 compareTo 方法,而 compareTo 方法的返回值影响排序是升序还是降序

不会写没关系,直接复制刚才 Integer 里的代码,修改 (x < y) ? -1 : ((x == y) ? 0 : 1); 修改为
(x > y) ? -1 : ((x == y) ? 0 : 1),相当于调换了 1 和 -1 的返回

 

我们还可以将 compare 方法修改为这样,这是相同的意思,而且更简便。

 
 

以下几种方式都可以实现降序排序,为方便记忆,o1 作为第一个参数, o2 作为第二个参数,o2 - o1 降序(2 ,1),o1 - o2 升序(1,2

 
 
 
 
 

自己实现

 

这里我们看出来要修改比较的东西时,就可能要重新修改重写的方法,而正常情况下Student 是封装好的,所以这个局限性就比较大,这才有了 Comparator 接口,也称之为比较器
而刚才在创建类时 就实现 Comparable 接口 定义的排序方式称自然排序或内部排序

 
 

Java 集合框架 Collections 工具类中的 sort 方法可以对集合中元素排序,前提是对象是可比较的,我们可以通过创建对象时实现Comparable 接口,或者在调用 sort 方法时将自己实现的 Comparator(比较器)接口作为参数传入。

  1. Comparable 接口在创建类时要手动实现并重写 compareTo 方法,一旦实现,每次用该类都有指定的顺序,属于内部顺序。如果要更换比较的方式,则要修改 compareTo 方法,侵入性强。

最新文章
怡亚通物流与衢州智造新城全面合作激发新质生产力,共筑产业全球化发展新引擎
2024-- 全面合作 --物流衢州智造新城共筑产业全球化发展新引擎衢州智造新城目前已形成产业链完备的氟硅新材料、锂电新材料、电子化学材料、特色轻工、芯片及传感器、智能装备制造、生物医药与大健康等7大产业集群。全力打造功能布局合理、
谷歌广告推广如何提高转化率
网站转化率是大家进行优化的最终目标,只有提升谷歌推广转化率,才能让大家的谷歌优化效果充分体现出来。 一、了解来访用户的类型 这是必要的功课,我们必须去了解我们的用户的属性,了解他们的地域分布、职业分布、年龄分布、性别分布等等
用AI绘画工具,一键生成超真实美女写真!
想要生成超逼真的美女写真,其实只需几个简单步骤:步骤1:访问工具在你的手机或电脑上搜索并访问【搜狐简单AI】小程序。步骤2:选择模板进入后会看到各种风格和模板,可以选择“美女写真”单元,依据自己的需求挑选合适的主题。步骤3:输
夜间飞行
1、问:《夜间飞行》在哪上映?/什么时候开播的?结局怎么样?策驰影视网友:这部影片是在韩国未知上映的,详细结局自己百度下!2、问:电影《夜间飞行》在播放过程中出现卡顿或者无法播放问题呢?茶杯狐官方:首播影院目前采用多节点播放器
电脑移动端处理器天梯图2021年4月 移动端CPU性能排名2021最新版
  2021年移动端CPU天梯图已经出来了!我们都知道CPU的性能好坏,决定了手机的性能强弱,那么很多小伙伴问小编2021年买手机看什么CPU呢?那么接下来小编带你看看2021年4月移动端cpu天梯图最新版,让你选择的时候有所抉择!  2021手机CPU
一物一码裂变营销,多样化营销活动激发购买欲望
一、增强品牌影响力:社交分享加速品牌传播一物一码裂变营销的核心在于消费者的社交分享。当消费者通过扫描产品上的二维码参与营销活动,并乐于将这些活动分享到微信、微博等社交平台时,品牌信息便如同插上了翅膀,迅速触达更多潜在消费者
公牛智能新能源汽车充电桩40KW单枪直流快速充电通用落地式大功率
公牛智能新能源汽车充电桩40KW单枪直流快充通用落地式大功率公牛智能新能源汽车充电桩40KW单枪直流快充通用落地式大功率公牛智能新能源汽车充电桩40KW单枪直流快充通用落地式大功率公牛智能新能源汽车充电桩40KW单枪直流快充通用落地式大功
百度翻译无广告纯净版
百度翻译支持着对不懂的文章进行着拍照翻译,在这里我们不仅仅是翻译的工具,还包含了背诵单词和课程表的查看的功能的体现;在这里每天都能够学习到一些内容,将他进行着记忆和保存这就是我们自己的学习资料库。拍照翻译:无需输入,轻轻一
医械跨境电商用户体验优化-洞察分析
33/37医械跨境电商用户体验优化第一部分医械跨境电商平台概述2第二部分用户需求分析7第三部分用户体验关键要素11第四部分界面设计与优化16第五部分内容翻译与本土化21第六部分网站性能与加载速度24第七部分互动性与个性化服务29第八部分售
相关文章
推荐文章
发表评论
0评