对自定义类的ArrayList进行排序

时间:2014-11-20 19:53:22

标签: java sorting arraylist

我有一个ArrayList个自定义Java用户,我需要对其进行排序。用户只是系统中的用户。但是,用户具有许多属性。要创建初始列表,这些是必要的调用:

ArrayList<Identity> contractors = (ArrayList<Identity>) resource.searchUsers(null, null, null, null, null, null, null, null, "Contractor", "active");

对象resource也是一个自定义Java类,具有必要的数据库调用以返回contractors.的数组列表

我的问题是如何使用许多不同的属性来排序复杂项目的数组列表?

1 个答案:

答案 0 :(得分:2)

有两个步骤:

class CustomComparator implements Comparator<Identity> {
    @Override
    public int compare(Identitya, Identityb) {
        return // compare here all values
    }
}

然后将此比较器与sort函数一起使用:

Collections.sort(peps, new CustomComparator() );

如果您对排序感兴趣,则必须在比较器内写入登录信息。

此解决方案比您的DTO实现Comparable更清晰,因为您可以根据需要创建和使用许多比较器。而且你的代码很干净,易于测试。

有用链接:

http://www.tutorialspoint.com/java/java_using_comparator.htm