如何组合 List<Predicate<MyClass>> 中的所有谓词
How to combine all predicates from List<Predicate<MyClass>>
我有一个问题,我相信你能帮我解决我的皱纹问题。
我有
List<Predicate<TaskFx>> predicates
我想在
中使用这些谓词
taskFxList.stream().filter(predicates).collect(Collectors.toList());
作为一个谓词合并为:
predicate1.and(predicate2).and...
我有一个 table(13 列),其中包含一些结果(在 JavaFx 中)和 6 个字段,可根据这些字段的值在此 table 中进行搜索。例如,我只能在 3 个字段中输入值,所以我的
predicates.size() = 3;
问题是如何最好地动态准备一个
Predicate<TaskFx> predicate
由x.and(y).and(z)合并的所有谓词组成
非常感谢您的帮助!
您可以像这样直播和 reduce
它们:
Predicate<TaskFx> predicate = predicates.stream()
.reduce(x -> true, Predicate::and);
或者你可以像这样处理它们:
List<TaskFx> resultSet = stringList.stream()
.filter(e -> predicates.stream().allMatch(x -> x.test(e)))
.collect(Collectors.toList());
我有一个问题,我相信你能帮我解决我的皱纹问题。
我有
List<Predicate<TaskFx>> predicates
我想在
中使用这些谓词taskFxList.stream().filter(predicates).collect(Collectors.toList());
作为一个谓词合并为:
predicate1.and(predicate2).and...
我有一个 table(13 列),其中包含一些结果(在 JavaFx 中)和 6 个字段,可根据这些字段的值在此 table 中进行搜索。例如,我只能在 3 个字段中输入值,所以我的
predicates.size() = 3;
问题是如何最好地动态准备一个
Predicate<TaskFx> predicate
由x.and(y).and(z)合并的所有谓词组成
非常感谢您的帮助!
您可以像这样直播和 reduce
它们:
Predicate<TaskFx> predicate = predicates.stream()
.reduce(x -> true, Predicate::and);
或者你可以像这样处理它们:
List<TaskFx> resultSet = stringList.stream()
.filter(e -> predicates.stream().allMatch(x -> x.test(e)))
.collect(Collectors.toList());