[英]Java 8 sort list of objects
I am trying to sort my list of objects like this: 我想尝试像这样排序我的对象列表:
List<UsersDataFoundTo> mergedUsers = mergeUsersFound(ldapUsers, foundUsers);
return mergedUsers.sort((UsersDataFoundTo h1, UsersDataFoundTo h2) -> h1.getLastName().compareTo(h2.getLastName()));
and on the return statement I get an error: 在return语句中我收到一个错误:
Incompatible types.
Required: java.util.List<UsersDataFoundTo>
Found:void
What do I do wrong then? 那我该怎么办?
Much easier would be to write is as: 更容易写作如下:
mergedUsers.sort(Comparator.comparing(UsersDataFoundTo::getLastName))
And sort
has a void
return type, so basically do a : sort
有一个void
返回类型,所以基本上做一个:
return mergedUsers;
For reusable, I think the class UsersDataFoundTo should implements Comparable and override compareTo function. 对于可重用,我认为类UsersDataFoundTo应该实现Comparable并覆盖compareTo函数。
class UsersDataFoundTo implements Comparable<UsersDataFoundTo> {
private String lastNam;
public String getLastNam() {
return lastNam;
}
public void setLastNam(String lastNam) {
this.lastNam = lastNam;
}
@Override
public int compareTo(UsersDataFoundTo other) {
return getLastNam().compareTo(other.getLastNam());
}
}
Then you can use a collection utility to sort it like this: 然后,您可以使用集合实用程序对其进行排序,如下所示:
List<UsersDataFoundTo> mergedUsers = //...
java.util.Collections.sort(mergedUsers);
I hope this help. 我希望这有帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.