Java8对象排序列表
我试图对我的对象列表进行如下排序:Java8对象排序列表,java,sorting,java-8,incompatibletypeerror,Java,Sorting,Java 8,Incompatibletypeerror,我试图对我的对象列表进行如下排序: List<UsersDataFoundTo> mergedUsers = mergeUsersFound(ldapUsers, foundUsers); return mergedUsers.sort((UsersDataFoundTo h1, UsersDataFoundTo h2) -> h1.getLastName().compareTo(h2.getLastName())); List<UsersDataFoundTo>
List<UsersDataFoundTo> mergedUsers = mergeUsersFound(ldapUsers, foundUsers);
return mergedUsers.sort((UsersDataFoundTo h1, UsersDataFoundTo h2) -> h1.getLastName().compareTo(h2.getLastName()));
List<UsersDataFoundTo> mergedUsers = //...
java.util.Collections.sort(mergedUsers);
List mergedUsers=mergeUsersFound(ldapUsers,foundUsers);
返回mergedUsers.sort((UsersDataFoundTo h1,UsersDataFoundTo h2)->h1.getLastName().compareTo(h2.getLastName());
在return语句中,我得到一个错误:
Incompatible types.
Required: java.util.List<UsersDataFoundTo>
Found:void
不兼容的类型。
必需:java.util.List
发现:无效
那么我做错了什么呢?更容易写的是:
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());
}
}
类UsersDataFoundTo实现可比较的{
私人字符串;
公共字符串getLastNam(){
返回拉斯特南;
}
公共void setLastNam(字符串lastNam){
this.lastNam=lastNam;
}
@凌驾
public int compareTo(UsersDataFoundTo其他){
返回getLastNam().compareTo(other.getLastNam());
}
}
然后,您可以使用收集实用程序对其进行如下排序:
List<UsersDataFoundTo> mergedUsers = mergeUsersFound(ldapUsers, foundUsers);
return mergedUsers.sort((UsersDataFoundTo h1, UsersDataFoundTo h2) -> h1.getLastName().compareTo(h2.getLastName()));
List<UsersDataFoundTo> mergedUsers = //...
java.util.Collections.sort(mergedUsers);
List mergedUsers=/。。。
java.util.Collections.sort(mergedUsers);
我希望这能有所帮助。
排序
没有返回值。正如@Eran所说,对其排序,然后返回列表。如果他改变主意并尝试在另一个属性上进行比较,则可能会重复该属性。UsersDataFoundTo
!!