如何动态传递 NOT 运算符

问题描述 投票:0回答:1

我有一个地图 myMap,我想在另外两个地图中过滤它。

我希望我的代码看起来像这样(伪代码)。

newMap = filter(myMap, dontApplyNOT);
myMap = filter(myMap, NOT);
public Map<Object, String> filter(... myMap, NOT) {
 return myMap.entrySet().stream().filter(entry -> NOT condition(entry)).collect();
}

由于某些原因,我无法向对象添加等于,也无法更改数据结构。

我希望动态反转条件,这样我就不必重复过滤功能。

java boolean maps
1个回答
0
投票

由于选择只是在“应用

!
”和“不应用
!
”之间进行选择,因此您可以使用
boolean
来表示此选择。

public Map<Object, String> filter(..., boolean positive) {
 return myMap.entrySet().stream()
    .filter(entry -> condition(entry) == positive)
    .collect(...);
}

注意表达方式

condition(entry) == positive
。如果
condition(entry)
为 true,则与
positive
相同;如果
!condition(entry)
为 false,则与
positive
相同。

© www.soinside.com 2019 - 2024. All rights reserved.