如何根據(jù) Java 8 流中的空檢查更改排序參數(shù)。例子:myList = myList .stream().sorted(Comparator.comparing(Profile::getFirstName)).collect(Collectors.toList());如果 getFirstName 結(jié)果為 NULL,我想使用另一個(gè)值 getLastName。喜歡:if(Profile.getFirstName()==null)Sort using Profile.getLastName()elseSort using Profile.getFirstName()
3 回答

胡子哥哥
TA貢獻(xiàn)1825條經(jīng)驗(yàn) 獲得超6個(gè)贊
...sorted(Comparator.comparing(x -> x.getFirstName() == null ? x.getLastName() : x.getFirstName()))....

繁花不似錦
TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超4個(gè)贊
我這樣做了:
myList = myList.stream().sorted(Comparator.comparing(profile->profile.getFirstName()==null? profile.getLastName():profile.getFirstName())).collect(Collectors.toList());

慕少森
TA貢獻(xiàn)2019條經(jīng)驗(yàn) 獲得超9個(gè)贊
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;
});
添加回答
舉報(bào)
0/150
提交
取消