【问题标题】:Sorting object of two properties [duplicate]两个属性的排序对象[重复]
【发布时间】:2012-12-24 15:43:47
【问题描述】:

可能重复:
Java sort problem by two fields

我有类似的用户对象

class user
{
    String firstName;
    String lastName;
}

我有一个包含这些对象的List,我必须按名字对其进行排序,如果名字与姓氏匹配,则仅按姓氏排序。

【问题讨论】:

  • 你可以实现一个Comparable接口。

标签: java collections


【解决方案1】:

这里有几种方法。

您可以实现 Comparator,然后在标准 Java 集合库中使用它来对您的集合进行排序,例如Collections.sort()

Comparator<MyObject> comparator = ....
Collections.sort(listOfObjects, comparator); // note-  will sort in place

另一种方法是让您的对象实现Comparable。然后,这会为您的对象引入 native 排序顺序。

请注意,您可以同时实现这两种方法。当您想要实现不同的排序策略(例如,按名称、按日期、按大小等)时,前者很有用。如果您想利用 Java 库中的本机排序概念和标准排序函数,则后者很有用。

查看Object Ordering 上的 Java 教程

【讨论】:

    【解决方案2】:

    如果您实现 Comparable 并使用自己的 compareTo 方法来满足您的需求。

    另一种选择是使用自定义Comparator,如许多其他答案所示。

    可以在here 找到一篇很好的文章,展示了这两种方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-22
      • 1970-01-01
      • 2014-03-06
      • 2023-03-15
      • 2019-12-10
      • 1970-01-01
      • 2016-11-25
      • 1970-01-01
      相关资源
      最近更新 更多