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
!!