我希望能够根据传入的布尔值应用过滤器.
public static List<Integer> multiplyNumbers(List<Integer> input, boolean ignoreEven){
return input.stream()
.filter(number -> !(number%2==0))
.map(number -> number*2)
.collect(Collectors.toList());
}
Run Code Online (Sandbox Code Playgroud)
我想根据ignoreEven标志进行过滤步骤.如果是真的,请忽略偶数.我该怎么做呢?我这样做是为了避免代码重复
对我来说听起来很简单或有条件.
.filter(number -> !ignoreEven || (number % 2 != 0))
Run Code Online (Sandbox Code Playgroud)
如果您不想检查ignoreEven每个元素,可以有条件地定义谓词本身:
.filter(ignoreEven ? (n -> n % 2 != 0) : (n -> true))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13640 次 |
| 最近记录: |