希望根据定义为 Predicate 的某些条件过滤列表(以下只是示例):
Predicate<Person> agePredicate = p -> p.age < 30;
Predicate<Person> dobPredicate = p -> p.dateOfBirth < 1980;
Predicate<Person> namePredicate = p -> p.name.startWith("a");
List<Predicate<Person>> predicates = Arrays.asList(agePredicate, dobPredicate, namePredicate);
List<Person> shortListPersons = listPersArrays.asList(listPersons).stream().filter(p -> predicates.stream().allMatch(f -> f.test(p))).limit(10).collect(Collectors.toList());
在我找不到任何人/足够多的人的情况下,我怎样才能获得符合尽可能多条件的人的列表 - 一种排名。
我的另一个选择是再次调用与上面相同的函数,但使用 anyMatch 代替,但它不会很准确。
任何的想法?谢谢!
千巷猫影
互换的青春
相关分类