简体   繁体   English

Java 8排序对象列表

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM