gpt4 book ai didi

java - 处理 'not' 条件作为流操作中的方法引用

转载 作者:行者123 更新时间:2023-11-29 08:31:00 25 4
gpt4 key购买 nike

<分区>

我经常在流操作期间检查一个集合是否包含一个元素,我写的代码是这样的:

Set<String> users = ...
Set<String> unemployed = ...

users.stream().filter(unemployedUsers::contains)

但是我还需要检查 NOT 条件,那么我必须这样写:

users.stream().filter(user -> !unemployedUsers.contains(user))

看起来可读性差而且有点难看。

如果我能用这样的东西代替它就太好了:

users.stream().filter(not(unemployedUsers::contains))

但我还没有在标准库中找到任何允许这样做的 API。

问:当我需要检查 NOT 条件时,如何用方法引用替换 lambda 表达式?或者是否有任何其他方法可以做同样的事情,但以更优雅的方式

更新:这个问题重复 "How to negate a method reference predicate" .然而,更多的是关于如何以更具可读性/优雅的方式编写 NOT 操作。

我可以这样写自定义代码

Predicate<String> not(Predicate<String> predicate) {
return predicate.negate();
}

并使用 not(unemployedUsers::contains) 的构造,但可能会有人以更好的方式解决这个问题。

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