在 Java 8 Comparator 的排序方法中切换排序过滤器参数

如何根据 Java 8 流中的空检查更改排序参数。


例子:


myList = myList .stream().sorted(Comparator.comparing(Profile::getFirstName)).collect(Collectors.toList());


如果 getFirstName 结果为 NULL,我想使用另一个值 getLastName。


喜欢:


if(Profile.getFirstName()==null)


Sort using Profile.getLastName()


else


Sort using Profile.getFirstName()


一只萌萌小番薯
浏览 159回答 3
3回答

胡子哥哥

...sorted(Comparator.comparing(x -> x.getFirstName() == null ? x.getLastName() : x.getFirstName()))....

繁花不似锦

我这样做了: myList = myList.stream().sorted(Comparator.comparing(profile->profile.getFirstName()==null? profile.getLastName():profile.getFirstName())).collect(Collectors.toList());

慕少森

  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;    });
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java