gpt4 book ai didi

lambda - 带有空值检查的 Java 8 lambda 比较器

转载 作者:行者123 更新时间:2023-12-03 10:44:27 26 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





null-safe mapping Comparator using default implementations

(1 个回答)


4年前关闭。




我已经使用 lambda 表达式对集合进行了排序以进行比较。我必须检查空值,所以我想出了这个比较器的解决方案

(a,b)->(
(a.getStartDate() == null)
? ( (b.getStartDate() == null) ? 0 : -1)
: ( (b.getStartDate() == null)?1:a.getStartDate().compareTo(b.getStartDate()) )
);

我已经检查了一些问题,例如 this ,但它们都指的是 pre-lambda 代码。

java lambda 表达式是否让我有机会避免使用两个“if”语句?我可以以更简洁的方式执行任务吗?

最佳答案

Comparator 中有默认实现您可以使用:nullsFirstnullsLast :

Comparator.comparing(YourObject::getStartDate, 
Comparator.nullsFirst(Comparator.naturalOrder())
)

关于lambda - 带有空值检查的 Java 8 lambda 比较器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39891552/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com