如何根据 Java 8 流中的空检查更改排序参数。例子:myList = myList .stream().sorted(Comparator.comparing(Profile::getFirstName)).collect(Collectors.toList());如果 getFirstName 结果为 NULL,我想使用另一个值 getLastName。喜欢:if(Profile.getFirstName()==null)Sort using Profile.getLastName()elseSort using Profile.getFirstName()
3 回答
胡子哥哥
TA贡献1825条经验 获得超6个赞
...sorted(Comparator.comparing(x -> x.getFirstName() == null ? x.getLastName() : x.getFirstName()))....
繁花不似锦
TA贡献1851条经验 获得超4个赞
我这样做了:
myList = myList.stream().sorted(Comparator.comparing(profile->profile.getFirstName()==null? profile.getLastName():profile.getFirstName())).collect(Collectors.toList());
慕少森
TA贡献2019条经验 获得超9个赞
myList.stream().sorted((a, b) -> {
if(a.getFirstName() != null && b.getFirstName() != null) {
return a.getFirstName().compareTo(b.getFirstName());
}
if (a.getLastName() != null && b.getLastName() != null) {
return a.getLastName().compareTo(b.getLastName());
}
return 0;
});
添加回答
举报
0/150
提交
取消