我需要修改一个 int 类型的列表,具体如下:
问题在于我正在过滤元素,而我想保留它们所有并只修改等于0的元素。
编辑:该列表由以下定义的MyType元素组成:
有任何建议吗?(涉及IT技术)
- 每个元素等于 10 的都需要翻倍
list.stream()
.filter(val -> val.getValue() == 10)
.map(val -> {
val.doubleValue();
return val;
})
.forEach(System.out::println);
问题在于我正在过滤元素,而我想保留它们所有并只修改等于0的元素。
编辑:该列表由以下定义的MyType元素组成:
public class MyType {
private int val;
public MyType(int v){
this.val = v;
}
public void doubleVal(){
val*val;
}
public int getValue(){
return val;
}
}
有任何建议吗?(涉及IT技术)
val.doubleValue()
不会将val
的值加倍,它返回val
作为double
类型的值(即 10 变成 10.0)。 - ErandoubleValue
视为由我定义的函数,其定义为value*value
。如果名称具有误导性,请将其视为doubleMyVal
。 - Andi Pavllo