[英]Java 8 sort list of objects
我想尝试像这样排序我的对象列表:
List<UsersDataFoundTo> mergedUsers = mergeUsersFound(ldapUsers, foundUsers);
return mergedUsers.sort((UsersDataFoundTo h1, UsersDataFoundTo h2) -> h1.getLastName().compareTo(h2.getLastName()));
在return语句中我收到一个错误:
Incompatible types.
Required: java.util.List<UsersDataFoundTo>
Found:void
那我该怎么办?
更容易写作如下:
mergedUsers.sort(Comparator.comparing(UsersDataFoundTo::getLastName))
sort
有一个void
返回类型,所以基本上做一个:
return mergedUsers;
对于可重用,我认为类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());
}
}
然后,您可以使用集合实用程序对其进行排序,如下所示:
List<UsersDataFoundTo> mergedUsers = //...
java.util.Collections.sort(mergedUsers);
我希望这有帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.