在Java 8 lambda表达式中使用filter(Predicate<? super T> predicate)
调用时,我想知道是将所有Predicate
逻辑放在一个调用中,还是链接filter(Predicate<? super T> predicate)
个调用在适当情况下提供可读性。
我认为链接filter(Predicate<? super T> predicate)
调用会很便宜,因为它们还没有遇到终结符,所以在可读性方面会犯错,但我对{{1}的了解不够充分用于完全理解权衡取舍的API。
借助以下示例(考虑更复杂的谓词),哪种实现更优越:Streams
或List<Person> usingOneFilter
?
List<Person> usingTwoFilters
答案 0 :(得分:10)
在这么小的例子中,我认为可读性并没有真正受到损害,但我仍然更喜欢使用单独的过滤方法。当然,如果它更复杂。
这确实不是很贵。没有理由&#34;优化&#34;它除非你有性能问题,并且分析显示这是瓶颈。但这种情况极不可能。