jdk源码之Comparable

jdk源码之Comparable

一、源码

public interface Comparable<T> {
    public int compareTo(T o);
}

二、接口介绍

这种排序被称为类的自然排序,而类的compareTo方法被称为它的自然比较方法
实现此接口的对象列表(和数组)可以通过Collections.sort、Arrays.sort自动排序。

三、compareTo方法介绍

  1. 将此对象与指定的对象进行比较以进行排序。当此对象小于、等于或大于指定对象时,返回一个负整数、零或正整数。
  2. 实现者必须确保对于所有 xy sgn(x.compareTo(y)) == -sgn(y.compareTo(x)) 。 (这意味着 如果 y.compareTo(x) 抛出异常,x.compareTo(y) 必须抛出异常。)
  3. 实现者还必须确保关系是可传递的: (x.compareTo(y)>0 && y.compareTo(z)>0)表示x.compareTo(z)>0 。
  4. 最后,实现者必须确保x.compareTo(y)==0。意味着sgn(x.compareTo(z)) == sgn(y.compareTo(z)),对于所有的z
  5. 强烈建议,但不要严格要求(x.compareTo(y)==0) == (x.equals(y)) 。 一般来说,任何实现Comparable接口并违反这种情况的类应清楚地表明这一点。 推荐的语言是“注意:此类具有与equals不一致的自然排序”。
  6. 在前面的描述中,符号sgn( ) 表达式表示数学符号函数,其定义根据表达式的值是否为负,零或正返回的-1,0,或1。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值