CompareTo和Comparator区别

CompareTo和Comparator区别

Compareable和Comparator都是接口
Compareable位于java.lang, Comparator位于java.util包下。

实现Compareable<>需要实现
  @Override
    public int compareTo(UseCompareable o) {
        return 0;
    }
一般情况下,如果equals返回true,则compareTo也应该返回0。需要考虑是否进行重写。   
   
   
实现comparator<>
  @Override
    public int compare(UseCompareable o1, UseCompareable o2) {
        return 0;
    }
  1. Comparable是排序接口;若一个类实现了Compareable接口,就意味着“该类”支持排序;而Comparator是比较器;我们若需要控制某个类的次序,可以建立一个“该类的比较器”来进行排序。
  2. Comparable相当于“内部比较器”,而Comparator相当于“外部比较器.
  3. Comparable是通用的接口,用户可以实现它来完成自己特定的比较,而Comparator可以看成是一种算法的实现,在需要容器集合实现比较功能的时候,来指定这个比较器,这可以看成是一种设计模式,将算法和数据分离。
  4. 前者比较固定,和一个具体类进行绑定,而后者比较灵活,它可以被用于各个需要比较功能的类使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值