【问题标题】:Why do we use Comparator over Comparable apart from the reason that it helps in customised sorting order?除了有助于自定义排序顺序的原因之外,为什么我们使用 Comparator 而不是 Comparable?
【发布时间】:2021-10-01 13:43:09
【问题描述】:

当我们想要实现自定义排序顺序时使用比较器,但使用 Comparable 也可以。那么我们为什么要使用 Comparator?

【问题讨论】:

  • “Comparable 也可以做到这一点” - 并非如此。如果你有(比如)一个Person 类,其中包含出生日期和姓名,有时你想按姓名对人员列表进行排序,有时按年龄排序,你会如何使用Comparable 来做到这一点?跨度>

标签: java collections comparator comparable


【解决方案1】:

那么我们为什么要使用Comparator

其中一些原因包括:

  • 因为Comparable 只允许您定义一种排序顺序。一些应用程序需要不止一种排序顺序;例如姓名顺序与年龄顺序,或姓名顺序与反向姓名顺序。

  • 因为您可能无法自定义类型。例如,您不能自定义String 的排序顺序,因为Stringfinal 类。

  • 因为自定义类的排序顺序可能不合适。例如,类具有任何自然顺序可能根本没有意义。


无论如何,Comparator 提供了Comparable 的替代方案。如果您不想使用,则不必使用它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-18
    • 1970-01-01
    • 2014-11-24
    • 1970-01-01
    • 2014-08-25
    • 2016-04-05
    相关资源
    最近更新 更多