猿问

Java 8 对象的排序列表

我正在尝试像这样对我的对象列表进行排序:


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

那我做错了什么?


长风秋雁
浏览 132回答 2
2回答

慕码人2483693

更容易写成:mergedUsers.sort(Comparator.comparing(UsersDataFoundTo::getLastName))并且sort有一个void返回类型,所以基本上做一个:return&nbsp;mergedUsers;

温温酱

对于可重用,我认为类 UsersDataFoundTo 应该实现 Comparable 并覆盖 compareTo 函数。class UsersDataFoundTo implements Comparable<UsersDataFoundTo> {&nbsp; &nbsp; private String lastNam;&nbsp; &nbsp; public String getLastNam() {&nbsp; &nbsp; &nbsp; &nbsp; return lastNam;&nbsp; &nbsp; }&nbsp; &nbsp; public void setLastNam(String lastNam) {&nbsp; &nbsp; &nbsp; &nbsp; this.lastNam = lastNam;&nbsp; &nbsp; }&nbsp; &nbsp; @Override&nbsp; &nbsp; public int compareTo(UsersDataFoundTo other) {&nbsp; &nbsp; &nbsp; &nbsp; return getLastNam().compareTo(other.getLastNam());&nbsp; &nbsp; }}然后,您可以使用收集实用程序对其进行排序,如下所示:List<UsersDataFoundTo> mergedUsers = //...java.util.Collections.sort(mergedUsers);我希望这会有所帮助。
随时随地看视频慕课网APP

相关分类

Java
我要回答