如何将多个断言应用于java.util.Stream?
- 论坛
- 如何将多个断言应用于java.util.Stream?
24 浏览
如何将多个断言应用于java.util.Stream?
如何将多个谓词应用于java.util.Stream
的filter()
方法?
这是我现在的做法,但我并不真的喜欢它。我有一个事物的Collection
,我需要根据过滤器(谓词)的Collection
来减少事物的数量:
Collectionthings = someGenerator.someMethod(); List filtered = things.parallelStream().filter(p -> { for (Filter f : filtersCollection) { if (f.test(p)) return true; } return false; }).collect(Collectors.toList());
我知道如果我事先知道了过滤器的数量,我可以这样做:
Listfiltered = things.parallelStream().filter(filter1).or(filter2).or(filter3)).collect(Collectors.toList());
但是如何在不混合编程风格的情况下应用未知数量的谓词呢?现在看起来有点丑陋...