我有一个ArrayList
个自定义Java
用户,我需要对其进行排序。用户只是系统中的用户。但是,用户具有许多属性。要创建初始列表,这些是必要的调用:
ArrayList<Identity> contractors = (ArrayList<Identity>) resource.searchUsers(null, null, null, null, null, null, null, null, "Contractor", "active");
对象resource
也是一个自定义Java类,具有必要的数据库调用以返回contractors.
的数组列表
我的问题是如何使用许多不同的属性来排序复杂项目的数组列表?
答案 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