排序两个属性的对象

时间:2013-01-10 09:43:17

标签: java collections

  

可能重复:
  Java sort problem by two fields

我有像

这样的用户对象
class user
{
    String firstName;
    String lastName;
}

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

2 个答案:

答案 0 :(得分:2)

这里有几种方法。

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

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

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

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

查看Object Ordering

上的Java教程

答案 1 :(得分:0)

如果您实现Comparable并使用您自己的compareTo方法来完成您所需的操作。

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

可以找到显示这两种方法的好文章here