Comparable和Comparator接口比较

最近在学习java初级的内容,碰巧用到这两个接口,于是搜集资料写下这篇文章,以加深自己对于Comparable、Comparator这两个接口的认识,希望能够帮到你~

一、Comparable简介
该接口位于java.lang包下面,含有compareTo一个抽象方法,当比较两个自定义类对象时往往会使用该接口,使用时注意要重写compareTo方法,且对对象类进行修改(类名 implements Comparable<参数类型>)。
compareTo方法有两个参数object1和object2,分别表示待比较的两个对象,方法返回值为int,有一下三种情况:
1、object1大于object2,返回正整数
2、object1等于object2,返回0
3、object1小于object3,返回负整数
关于Comparable的详细用法可以看以下例子:在这里插入图片描述
二、Comparator简介
该接口位于java.util包下面,内部含有多个抽象方法,其中compare方法和Comparable 中的compareTo方法类似,用于两个对象的排序(默认升序),有两个参数object1和object2,分别表示待比较的两个对象,方法返回值为int,有一下三种情况:
1、object1大于object2,返回正整数
2、object1等于object2,返回0
3、object1小于object3,返回负整数
该接口常常在没有实现Comparable接口不能对对象类进行修改以及需要使用特定的排序方式(如降序)时使用,使用该方法往往不需要对类进行修改。
关于Comparator的详细用法可以看以下例子:
!注意在使用该接口类时,Comparator比较器将作为参数递交给工具类的sort()方法
在这里插入图片描述
三、Comparable和Comparator的不同
1.所在的包不同,Comparable属于java.lang包,Comparator属于java.util包
2.包含的抽象方法不同,Comparable只包含compareTo方法,Comparator包含compare、reversed等多个抽象方法,排序方式更加灵活多样
3.使用方法不同,comparable在使用时要对对象类做出修改,Comparator则不用
4.用Comparable接口时,必须要重写compareTo方法,而Comparable接口可以在类的外部使用,使用时要将该接口作为参数传递给Arrays.sort()方法或Collections()方法进行排序

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值