Java两个对象之间的比较

两个对象之间比较

1.对象之间的比较, 通过实现Comparable接口, 重写compareTo方法

一.Comparable接口

Comparable接口表示自然比较。 特点:

  1. 实现Comparable接口的类, 可以比较大小

  2. 实现Comparable接口的类, 可以进行自然排序 自然排序: 从小到大排序 自定义排序: 按照自定义的规则排序

  3. 实现Comparable接口的类, 要重写compareTo方法 compareTo 自然比较方法 方法表示比较规则,参数是Object类型, 返回值是 int 类型。 返回值是int类型, 有三种情况: 正数, 0, 负数 。

二.Comparator接口

Comparator接口表示比较器。 特点:

总之,Comparable接口适用于实现对象的自然排序,而Comparator接口适用于实现对象的非自然排序。使用哪个接口取决于特定的需求以及对象的特性。

  1. 实现Comparator接口的类, 可以比较两个对象的大小

  2. 实现Comparator接口的类, 可以进行自定义排序 重写compare方法, 比较两个对象的大小 返回值是int类型, 有三种情况: 正数, 0, 负数 。

            
     Arrays.sort(stus, (o1, o2) -> {
                 // 只比较年龄
                 if (o1.getAge() > o2.getAge()){
                     return 1;
                 } else if (o1.getAge() < o2.getAge()){
                     return -1;
                 } else {
                     return 0;
                 }
     ​
             });
     ​

    三.两个接口的区别

    Java中的Comparable接口和Comparator接口都是用于比较两个对象的接口,但它们之间存在一些显著的区别。

  3. 接口方法不同:

    • Comparable接口定义了一个compareTo方法,该方法接受一个同类型的参数,返回一个整型结果。这个结果小于0表示对象小于参数,等于0表示对象等于参数,大于0表示对象大于参数。

    • Comparator接口定义了一个compare方法,该方法接受两个同类型的参数,返回一个整型结果,其行为类似于Comparable的compareTo方法。

  4. 用途和灵活性不同:

    • Comparable接口是用于定义对象之间的自然排序规则,即在类的定义时就确定了对象的排序方式。如果一个类实现了Comparable接口,那么它的对象可以进行相互比较并可以排序。

    • Comparator接口则更灵活,它可以在使用时定义排序规则。如果需要自定义一个比较器来比较对象的属性,那么可以通过实现Comparator接口并重写其中的compare方法来实现。

  5. 适用范围和限制不同:

    • Comparable接口适用于类本身具有天然的排序规则的情况,例如整数、浮点数等基本数据类型以及字符串等。对于没有天然排序规则的类,通常需要实现Comparator接口。

    • Comparator接口可以定义多种排序方式,甚至可以为同一个类定义多个不同的比较器以适应不同的排序需求。它适用于需要根据对象的某些属性或因素进行排序的情况。

  6. 对象的大小关系比较不同:

    • 在Comparable接口中,比较的是对象本身的大小关系。

    • 在Comparator接口中,比较的是对象的某些属性的大小关系。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值