java Comparable接口

作者 : 资源姬 2021-02-11分类:博客

Interface Comparable<T>

  • 参数类型
    T – 可以将此对象与之进行比较的对象类型
    public interface Comparable<T>

    该接口对实现它的每个类的对象强加一个整体排序。 这个排序被称为类的自然排序 ,类的compareTo方法被称为其自然比较方法Collections.sort (和Arrays.sort )可以自动对实现此接口的对象进行列表(和数组)排序。 实现该接口的对象,可以使用如在键sorted map或作为在元件sorted set ,而不需要指定一个comparator 。

    一类C的自然顺序被说成是与equals一致当且仅当e1.compareTo(e2) == 0对每一个e1Ce2相同的布尔值e1.equals(e2)。 请注意, null不是任何类的实例, e.compareTo(null)应该抛出一个NullPointerException即使e.equals(null)返回false

    强烈建议(尽管不需要)自然排序与等于一致。 这是因为,当没有显式比较器的排序集(和排序映射)与其自然排序与equals不一致的元素(或键)一起使用时会“奇怪地”。 特别地,这种排序集合(或排序映射)违反了根据equals方法定义的集合(或映射)的一般合同。

    例如,如果加上两个键ab,使得(!a.equals(b) &&
    a.compareTo(b) == 0)
    (有序集合不增加的大小和),以一有序集合不使用显式的比较器,所述第二add操作返回false因为ab是等价从排序集的角度。

    几乎所有实现Comparable的Java核心类都具有与equals 一致的自然排序。 一个例外是java.math.BigDecimal ,其自然排序等于BigDecimal具有相同值和不同精度(例如4.0和4.00)的对象。

    对于数学倾斜,定义给定类C的自然排序的关系是:

      {(x, y) such that x.compareTo(y) <= 0}.

    这个总订单的是:

      {(x, y) such that x.compareTo(y) == 0}.

    它从合同compareTo,该商数是C等价关系紧接着,那自然排序是C, 总订单 。 当我们说类的自然排序与equals一致的 ,我们的意思是自然排序的商是由类的定义的等价关系equals(Object)方法:

      {(x, y) such that x.equals(y)}.

    此接口是成员Java Collections Framework 。

    从以下版本开始:
    1.2

关于收费
微薄收入,仅用于维持服务器。本站模型区全部免费
关于VIP
VIP可以免费下载。月度、年度vip每天可免费下载9次,应该够用。终身vip每天可下载19次,右侧成为vip
注意,请不要重复点击某个资源的下载按钮,每次点击都会计入次数
资源失效处理
1、如果是蓝奏云,将下载链接中的lanzous换成lanzoux即可
2、如果是百度云失效了,那请点右侧发邮件给客服,或者在评论区指出,也可在菜单栏【有问必答】说明
3、如果是其他原因,请右侧按钮发邮件给我

发表评论