Java 8 排序对象列表
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 类型,所以基本上做一个 :
return mergedUsers;
为了可重用,我认为 class 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);
希望对您有所帮助。
我正在尝试像这样对我的对象列表进行排序:
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 类型,所以基本上做一个 :
return mergedUsers;
为了可重用,我认为 class 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);
希望对您有所帮助。