【发布时间】:2021-03-15 08:47:05
【问题描述】:
问题: 从整数列表中得到奇数的平方和偶数的一半,然后返回值列表。
Ans : 1> 我将在 map() 方法中编写逻辑和 if else 条件。
List<Integer> output = intArray.stream().map(x-> {
if(x%2 ==0){
x=x/2;
}else{
x= x*x;
}
}).collect(Collectors.toList());
他们有没有更好的方法专门使用 Filter 来做到这一点?
【问题讨论】:
-
这段代码可以编译吗?你没有返回任何东西。并且重新分配传入参数对调用者没有影响。 Is Java “pass-by-reference” or “pass-by-value”?
-
过滤器用于从列表中删除元素。既然你想对它们执行操作,Map 是正确的方法!
-
map(x -> x%2 == 0? x/2: x*x)
标签: java-8 java-stream predicate