我有一个地图
我希望我的代码看起来像这样(伪代码)。
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();
}
由于某些原因,我无法向对象添加等于,也无法更改数据结构。
我希望动态反转条件,这样我就不必重复过滤功能。
由于选择只是在“应用
!
”和“不应用 !
”之间进行选择,因此您可以使用 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
相同。