[英]Switching the Sort filter Parameter in Java 8 Comparator's Sort method
How to change the sort parameter based on a null check in Java 8 stream.如何根据 Java 8 流中的空检查更改排序参数。
Example:例子:
myList = myList .stream().sorted(Comparator.comparing(Profile::getFirstName)).collect(Collectors.toList());
Here if getFirstName turns out NULL, I want to use another value getLastName.这里如果 getFirstName 结果为 NULL,我想使用另一个值 getLastName。
Like:喜欢:
if(Profile.getFirstName()==null)
Sort using Profile.getLastName()
else
Sort using Profile.getFirstName()
...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;
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.