java比较器:Comparable和Comparator

22 篇文章 4 订阅
订阅专栏

一、说明:

Java中的对象,正常情况下,只能进行比较: == 或 != 。不能使用 >或

如何实现? 使用两个接口中的任何一个: Comparable 或 Comparator

 二、Comparable的使用(自然排序)

1.Comparable接口的使用举例:

1.像string、包装类等实现了Comparable接口,重写了compareTo(obj)方法,给出了比较两个对象大小的方式

2.像string、包装类重与compareTo()方法以后,进行了从小到大的排列

3.重写compareTo(obj)的规则:

        如果当前对象this 等于形参对象obi.则返回零。

        如果当前对象this 大于形参对象obi,则返回正整数

        如果当前对象this小于形参对象obi.,则返回负整数

4.对于自定义类来说,如果需要排序,我们可以让自定义类实现Comparable接口,重写compareTo(Object obj)

2.在compareTo(obj)方法中指明如何排序

 三、Comparator的使用(定制排序)

1.背景:

当元素的类型没有实现java.Lang.Comparable接口而又不方便修改代码或者实现了java.Lang.Comparable接口的排序规则不适合当前的操作,那么可以考虑使用 Comparator 的对象来排序

 2.重写compare(Object o1,object o2)方法,比较1和2的大小:

        如果方法返回正整数,则表示o1大于o2;

        如果返回0,表示相等:

        返回负整数,表示o1小于o2

Comparator comparator = new Comparator() {
    @Override
    public int compare(User u1, User u2) {
        if (u1.age > u2.age) {
            return 1;        
        } else (u1.age < u2.age){
            return -1                    
        } else {
            return 0;        
        }
    }
};
comparator.compare(user1, user2)

Java比较器Comparable接口和Comparator接口
渔舟的博客
08-31 351
本文详细介绍了Java中的两种比较器Comparable接口和Comparator接口,并根据具体场景给出了实现。
java中的比较器Comparable接口和Comparator接口
weixin_44585687的博客
01-14 342
1.java比较器的使用背景: Java中的对象,正常情况下,只能进行比较: == 或!= ,不能使用 > 或者 < 的 但是在开发场景中,我们需要对多个对象进行排序,言外之意,就需要比较对象的大小。 如何实现?使用两个接口中的任何一个:ComparableComparator 2.自然排序:使用Comparable接口 2.1说明 1.像String、包装类等实现了Comparable接口,重写compareTo()方法,给出了比较两个对象大小 2.像String、包装类重写了compa
Java Comparator.compare
wo1121113522的博客
04-13 136
Java Comparator.compare Compares its two arguments for order. Returns a negatvie integer , zero , or a positive integer as the first argument is less than , equal to , or greater than the second. 比较两个参数的顺序。返回一个负数,零,正数,分别对应着 第一个参数 小于,等于,大于第二个参数。 In the
java中的比较器comparator和compare
qq_20376111的博客
09-03 1040
比较器可以理解为冒泡排序算法。 返回值大小,会让比较器去判断两个数要不要交换位置。 比如:int nums={1,3,2}; compare方法内,如果是return nums[0]-nums[1]=1-3=-2,返回小于0,说明不用交换位置。 如果是return nums[1]-nums[0]=3-1=2,返回大于0,说明要交换位置,也就是3和1位置交换了,那么就变成降序了。 也就是说返回值大于0交换位置,不大于0的不交换位置。 那么第一参数减第二个参数会使数组升序排序,而第二个参数减第一个参数会使数
java中的comparator与compare
AgSword的博客
02-10 534
list.sort(new Comparator<Integer>() { @Override public int compare(Integer o1, Integer o2) { return o1-o2; } }); 上面的comparator使list升序 list.sort(new Comparator<Integer>() { .
Java Comparator接口中compare方法使用
kim
06-03 1万+
经常忘记,记录一下. 首先看一下部分排序源码 //----------------------------Collections.sort------------------------------------------ public static <T> void sort(T[] a, Comparator<? super T> c) { if ...
javaComparator接口的compare方法
qq_30033509的博客
11-09 621
我看到网上好多博客都说compare方法返回1就会交换顺序,而且我也记得我之前写的demo也是这样的,但是我今天又试验了一下,发现我返回1,但是他实际上并没有交换顺序。 public static void main(String[] args) { List<Integer> list = new ArrayList<>(); list.add(1); list.add(2); Collections.sort(lis
Java 比较器ComparableComparator接口解析
"Java比较器主要用于对集合中的对象进行排序,涉及到`java.lang.Comparable`接口和`java.util.Comparator`接口。这两个接口提供了两种不同的排序方式,一种是对象自身的自然排序,另一种是根据特定规则的定制排序。...
对比Java中的Comparable排序接口和Comparator比较器接口
09-02
Comparator是一个比较器接口,它提供了一种在类本身不支持排序的情况下控制对象次序的方式。通过实现Comparator接口,你可以创建一个独立于原始类的比较逻辑,这使得排序更灵活。Comparator接口包含两个方法:`...
Javacomparator接口中compare方法比较原理
Sup星月★然的博客
02-17 2767
可通过重写Comparator接口中的抽象方法compare,自定义元素的排序方式。 • Compare的返回值反应的是两个参数的权重,返回值正整数时,前者(o1)权重大,返回值为负整数时,后者(o2)权重大。然后排序结果按照权重(注意这里不是值的大小)由小到大进行排序。即权重默认升序排列。
Java 细节汇总(5)-Comparator#compare() 升降序确定
最新发布
谈谈1974
05-16 1546
方法的实现可以决定排序元素的升序降序,但是许多人对升降序的确定依据是比较模糊的。降序的判断分析与此类似,不再赘述。
怎么理解、重写Java的Arrays.sort()的比较器Comparator的compare()方法,自定义排序规则
GsxxInCsdn的博客
12-25 9647
重写Java的Arrays.sort()的比较器,在重写compare(a,b)方法时,其实就是要选择返回a-b还是b-a,可以这样理解着改写: 假设数组的前两个元素从左到右分别为a和b,且a>b(即数组初始顺序为降序), 若你想调用sort后,顺序改为升序,则让其输出正数,返回a-b;若你想用sort后,顺序不变仍保持为降序,则让输出负数,返回b-a。............
JavaComparator比较器的使用以及使用lamba简化代码
小泽
08-28 348
代码例子: /** * 测试Comparator */ @Test public void test17(){ //原始方法 Comparator<Integer> comparator = new Comparator<Integer>() { @Override public int compare(Integer o1, Intege...
Java中的排序接口Comparable比较器Comparator详解
向上的"狼"的博客
08-07 1万+
Java中的排序接口Comparable比较器Comparator详解
Comparable接口的使用以及实例说明
only one
02-19 2941
Comparable接口 一、comparable介绍 在java编程中,我们经常会对集合、数组进行排序,当集合中的对象是自定义的对象时,我们有以下方法能够使排序方法应用到自定义对象的集合(数组)中。下面我们介绍Comparable的用法。 二、comparable用法 (1)、使用Collections.sort对集合进行排序(集合中存放Integer类型) ...
Java实现自定义对象的排序
12-21 9522
在这之前,首先来说一下用Android Studio来调试Java程序,控制台出现乱码的问题。至于怎么用Android Studio创建Java程序,网上很多。 public class JavaBase { public static void main(String[] args) { System.out.println("排序前" ); }
Java 8 新特性】Java Comparator.comparing | 提取对象属性,按照指定规则排序
热门推荐
猫巳的博客
09-14 3万+
Java Comparator.comparing | 提取对象属性,按照指定规则排序Comparator.comparingComparator.comparingIntComparator.comparingLongComparator.comparingDouble参考文献 comparing是比较器功能接口的静态方法。 Comparator.comparing方法在Java 8中被引入。 Comparator.comparing接受一个函数,该函数从给定类型中提取一个可比较的排序键,并返回一个通过该
Java学习笔记】Comparable接口的实现和使用
weixin_34406086的博客
12-17 1194
作者:gnuhpc 出处:http://www.cnblogs.com/gnuhpc/ 1.什么是Comparable接口 此接口强行对实现它的每个类的对象进行整体排序。此排序被称为该类的自然排序 ,类的 compareTo 方法被称为它的自然比较方法 。实现此接口的对象列表(和数组)可以通过 Collections.sort (和 Arrays.sort )进行自动排序。实现此接口的...
写文章

热门文章

  • mount: /n_home: 未知的文件系统类型“LVM2_member”. 问题解决 26353
  • 通过路由器端口映射实现外网IP访问内网服务器 20557
  • SSH安装、配置、远程控制及文件传输 19837
  • Linux环境下VMware虚拟机网络配置(桥接和NAT) 13785
  • 【DNSPOD】利用DNSPod实现动态域名解析【DDNS】 12998

分类专栏

  • 开发笔记 2篇
  • Spring全家桶 8篇
  • Linux | OpenEuler 21篇
  • 源码的艺术 1篇
  • Java 22篇
  • 开发坏境配置 7篇
  • 持久层框架 1篇
  • 设计模式 2篇
  • odoo14
  • odoo14开发 初级 12篇
  • odoo14开发 中级 20篇
  • odoo14开发 高级 15篇
  • Vue 3篇
  • Git 4篇
  • Python 2篇
  • MySQL 10篇
  • postgresql 2篇
  • html/css 笔记 4篇
  • JavaScript基础 3篇
  • 网络协议 2篇
  • 杂记 4篇

最新评论

  • 基于Docker搭建ELK(Elasticsearch、Logstash、Kibana)日志框架

    Bald Programmer: 太猛了,很可以表情包

  • 从零开始的Spring Cloud Gateway指南:构建强大微服务架构

    lucky_fd_: 不需要

  • 从零开始的Spring Cloud Gateway指南:构建强大微服务架构

    Halo!!!: 启动注解要更换掉吗?

  • 基于Docker搭建ELK(Elasticsearch、Logstash、Kibana)日志框架

    风清默: 很全哥们表情包

  • 光猫和路由器上网详解

    暮云卿: 那光猫拨号上网,路由器桥接这种怎么样?连接的都是路由器的WiFi,测速还行,就是无法管理IP地址和设备,路由器是桥接没有管理界面只能看哪些设备是哪些IP地址,光猫又没有具体的管理界面

最新文章

  • Java 常用加密解密算法及应用示例
  • Spring框架常用注解详解
  • SpringBoot集成Logback日志框架全攻略
2024年13篇
2023年33篇
2022年60篇
2021年19篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家玻璃钢彩绘雕塑供应商呈贡玻璃钢雕塑设计制作多少钱大理市玻璃钢雕塑设计要多少钱淄博张店玻璃钢雕塑西宁商场美陈报价江西公园玻璃钢雕塑图片武乡玻璃钢雕塑厂家天津户外玻璃钢雕塑联系方式佛山玻璃钢雕塑加工厂家河南玻璃钢景观雕塑厂家贵州玻璃钢雕塑厂广州玻璃钢小品雕塑厂家广西玻璃钢牛动物雕塑小猪摆件景观园林玻璃钢人物雕塑厂家扶沟玻璃钢雕塑设计临安区玻璃钢雕塑公司湖南玻璃钢西瓜雕塑滨江玻璃钢雕塑厂家威海玻璃钢广场雕塑厂家供应山东火烈鸟玻璃钢雕塑定制辽宁玻璃钢雕塑尺寸玻璃钢仿真玉米雕塑东莞制造玻璃钢座椅雕塑滁州动物玻璃钢雕塑设计大同玻璃钢雕塑定制广东佛山玻璃钢雕塑厂家嘉善商场开业美陈通用玻璃钢雕塑销售价格五华区玻璃钢雕塑设计公司晋中玻璃钢卡通雕塑定制香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化