Java 8 lambdas多个过滤器调用

时间:2015-07-29 20:38:54

标签: java lambda java-8 java-stream

在Java 8 lambda表达式中使用filter(Predicate<? super T> predicate)调用时,我想知道是将所有Predicate逻辑放在一个调用中,还是链接filter(Predicate<? super T> predicate)个调用在适当情况下提供可读性。

我认为链接filter(Predicate<? super T> predicate)调用会很便宜,因为它们还没有遇到终结符,所以在可读性方面会犯错,但我对{{1}的了解不够充分用于完全理解权衡取舍的API。

借助以下示例(考虑更复杂的谓词),哪种实现更优越:StreamsList<Person> usingOneFilter

List<Person> usingTwoFilters

1 个答案:

答案 0 :(得分:10)

在这么小的例子中,我认为可读性并没有真正受到损害,但我仍然更喜欢使用单独的过滤方法。当然,如果它更复杂。

这确实不是很贵。没有理由&#34;优化&#34;它除非你有性能问题,并且分析显示这是瓶颈。但这种情况极不可能。