【问题标题】:When and why we have to implement Comparable interface?何时以及为什么我们必须实现 Comparable 接口?
【发布时间】:2009-08-03 05:12:30
【问题描述】:

在哪些情况下我们必须实现 Comparable 接口?

【问题讨论】:

标签: java collections


【解决方案1】:

当您希望能够比较 2 个对象并获得等于、小于或大于的结果时。

实现 Comparable 为您的对象提供compareTo 方法。如果您将它们添加到排序列表,那么它们将根据您的 compareTo 方法返回的内容自动排序。

这是非常基本的。不知道还有什么要补充的。

【讨论】:

  • 要扩展 takteek 的答案,基本上,您需要实现 Comparable 接口,以便为各种排序集合使用大部分内置排序功能。
  • 或者我们可以说我们必须将它用于未排序和无序的集合,并且我们想要找到该集合的指定元素的索引(如 HashMap 集合)????跨度>
  • Comparable 接口指定所谓的对象“自然”排序。
  • Johanna:你不需要为 hastables 实现它,因为它们使用哈希码
【解决方案2】:

当您的类实现 Comparable 接口时,您必须实现 compareTo() 方法,以便您可以清楚地知道您的类的实例在此类实例的有序列表中的位置.

实现高效的排序算法和有序集合并非易事。因此,当您希望类的对象具有自然排序时,您会这样做,因此您可以使用 Java 提供的经过验证的排序和顺序相关算法和类,而不是实现自己的,例如让 TreeSet 的内容在之后保持排序插入/删除,或使用 Collections.sort()。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-19
    • 1970-01-01
    • 2012-01-26
    • 2019-10-09
    • 1970-01-01
    • 1970-01-01
    • 2015-03-02
    相关资源
    最近更新 更多